Vi & Vim

使用vi和Vim系列文本编辑器的人员的问答

4
如何用以前选中的文本替换()中的文本?
假设我之前拉过文本Fnord,并且我的光标位于B该行的上: M:mock(Baz) 如何用先前选中的文本更改()中的文本? 目前,我经常通过以下操作来犯错: di( 又名“删除()内” SHIFT + P 但是,这又给我留下了确切的文字,因为删除的文字将被移到寄存器中。 我希望有: M:mock(Fnord)

2
使用ex-command检查两行是否相同?
我一直在看这个问题,然后想知道如何使用纯 POSIX 实现我的答案 sed。ex 诀窍是,虽然sed我可以比较保持空间和模式空间以查看它们是否完全相等(用 G;/^\(.*\)\n\1$/{do something}),但是我不知道在中进行这种测试的方法ex。 我知道在Vim中,我可以Y使第一行变短,然后键入 :2,$g/<C-r>0/d以几乎执行我指定的操作-但是如果第一行包含除非常简单的字母数字文本之外的任何内容,这的确会带来麻烦,因为该行已作为正则表达式转储了进来。 ,而不仅仅是用于比较的字符串。(如果第一行包含正斜杠,则该行的其余部分将被解释为命令!) 因此,如果我想删除myfile与第一行相同的所有行,但又不想删除第一行,该如何使用ex?为此,我该如何使用vi? 如果某行与另一行完全匹配,是否有POSIX方法删除该行? 可能是这样的虚构语法: :2,$g/**lines equal to "0**/d

2
如何在Windows上使用Python插件?
我已经安装了Windows 7 64位,并安装了python 2.7.11和python 3.5.1(均为32位),并且我已经用python / dyn和python3 / dyn编译了vim,但是我一直收到以下错误消息: :py print "hello" E887: Sorry, this command is disabled, the Python's site module could not be loaded 但是,以下所有工作都很好: C:\python27\python -c "import site;" 和 :py3 print("hello") 这是我的vim版本信息: VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 29 2016 11:58:41) MS-Windows 32-bit …

2
如何使用qt-neovim启动最大化GUI?
我正在将neovim与qt-neovim(linux arch)一起使用。在gvim上,我可以使用以下命令启动最大化窗口: if has("gui_running") set lines 999 columns 999 endif 现在那是行不通的。我尝试删除if如果没有成功。有什么办法可以实现?
9 neovim 


1
打开缓冲区时,“ +”符号是什么意思?
我想在垂直拆分中打开终端缓冲区。 如果我尝试:vertical split terminal我得到一个名为“终端”的缓冲区,而不是终端缓冲区。 我最近了解到可以:vertical split +terminal打开终端缓冲区,但是找不到帮助文档来解释+的作用。 “ +”是什么意思,是特定于终端缓冲区还是更通用的东西? 聚苯乙烯 我也刚刚意识到我可以做得到:vertical split | terminal相同的行为(至少我认为相同)。
9 buffers  neovim 

2
为什么Vim不提供我的.vimrc文件
今天,我发现我.vimrc没有生效。几小时前还可以。 当我用启动vim时$vim --plugin,:scriptnames没有回声:.vimrc文件不是源文件。(注意:/etc/vimrc已删除,以调试此问题。) 然后,我尝试使用google并发现$VIMINIT变量可疑。 这是值$VIMINIT: $ echo $VIMINIT set number Vim文档VIMINIT: c. Four places are searched for initializations. The first that exists is used, the others are ignored. The $MYVIMRC environment variable is set to the file that was first found, unless $MYVIMRC was already set. - The environment variable …


1
缓冲区vs选项卡vs arglist vs Windows
这么多选择!太混乱了! 什么时候应该优先使用另一个? 它们之间如何相互联系? 两者之间有什么区别? 它们如何影响您键入的命令? 它们与寄存器,宏,标记,选项和命令历史记录有何关系? 例如,像在典型的GUI程序中一样,选项卡是窗口的细分,还是其他窗口在窗口中的细分? 这与通过:next和访问的多个命令行参数(arglist):prev有何关系? 最后,哪些(如果有)vi兼容?

2
Vim不会把变音符号当作单词字符
当我写德语文本时abücd,例如dw在前面加上一个,它只会删除,ab因为它不会解释ü为文字字符。 当我编辑reStructuredText时, iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_ 这就解释了为什么没有标记变音符号,但是我不明白这是从哪里来的。当我刚打开gVim时,将其设置为 iskeyword=@,48-57,_,192-255 这可能从哪里来?
9 unicode 

1
在Vim中禁用部分HTML缩进
警告:我不是网络开发人员。 话虽这么说,在极少数情况下,我不得不编辑HTML。当我这样做时,我注意到我不喜欢的Vim行为,并希望可以通过配置进行更改。 在编写代码时,我倾向于将行换成80个字符。这通常意味着我必须将HTML标签分成多行。我想要的是发生这种情况时的一些合理的缩进。因此,例如,我可能有以下代码,并且希望以类似的方式缩进: <a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg" class="ri" alt="This is an image"></a> 但是,默认情况下,Vim的自动缩进会将缩进的HTML标记缩进到与从上一行开始的HTML标记相同的级别。换句话说,我得到如下信息: <a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg" class="ri" alt="This is an image"></a> 正是我所不想要的。在输入时,我发现自己经常不得不回过头来修复这样的缩进。 我总体上喜欢Vim的自动缩进,并且不想简单地普遍禁用它。我只想禁用或更改拆分的HTML标记缩进,但是我不知道如何做。 有可能改变吗? (我曾尝试在Stackoverflow上搜索此问题,但找不到它。如果重复,请指出原始问题。) 编辑:在这里找到解决方案https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u 编辑#2:好的,上面的解决方案不能解决问题。它仍然在那里。

2
vundle“文件类型插件缩进”与tabwidth混乱
昨天我安装了vundle,自从我安装了vundle以来,我在vimrc中配置的tabwidth被忽略,并设置回4而不是2。 我发现在vundle段落之后的以下行是引起该错误的原因: filetype plugin indent on 我的缩进设置如下: set noexpandtab " Make sure that every file uses real tabs, not spaces set shiftround " Round indent to multiple of 'shiftwidth' set smartindent " Do smart indenting when starting a new line set autoindent " Copy indent from current line, over to …

2
更改vimtutor语言
我的老师是葡萄牙语。我不知道为什么,因为我的Windows操作系统和其他所有语言都是英语。我不记得在vim安装过程中的任何地方都选择了“葡萄牙语”。 如何将其更改为英语?

3
将标记设置为其先前的值
有时,我会使用mA,mB...和'A,'B... 使用标记轻松浏览不同的文件 有时,由于注意力不集中或任何原因(有时比我更想承认的),我使用m[LETTER]了一个已经存在的标记,当我不想使用该标记时会删除其先前的值。在大多数情况下,我没有打开标记所指向的文件。 在这种情况下,当我立即意识到自己犯了一个错误时,是否可以获取标记的先前值,而不是记住它所指向的位置,导航到该位置并再次进行设置? 我还没有在文档中找到这样的命令,所以如果不存在这样的命令,那么在这种情况下您可以使用一些聪明的解决方法吗?
9 mark 

1
自动套用格式:插入文字后自动换行
阅读help textwith和之后help fo-table,我希望当我设定 set textwidth=20 " for demonstration set formatoptions=tcq 那么插入文本最终总会导致换行,但事实并非如此。包装只发生在光标之前(或之前)。而且,如果我粘贴,则根本不会包裹。 示例(Vim 7.4): 12345678901234567890 This is a long line 如果我点击A并开始输入,该行将自动换行。 但是,如果我点击02wi并键入“ still”,它不会自动换行: 12345678901234567890 This is still a long line 我必须输入另外7个字符,然后才能换行,然后问题在下一行继续: 12345678901234567890 This is still more <-- it wraps here typing and again a long line 粘贴也不会触发换行: 12345678901234567890 This is a …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.