Vi & Vim

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

1
在“原始”模式下试用vim / gvim
有时,我想尝试一下在互联网上找到的技巧。在原始模式下,即在不加载我所有的〜/ .vimrc东西的情况下,在vim(如果是gui技巧,是gvim)中尝试此操作通常会很有帮助。 您有有效的技巧吗?


2
如何为同一个片段使用多个触发器?
我已经制作了一个片段,希望提供不同的触发条件,所以与其说trigger我还想通过以下方式触发它myothertrigger: snippet trigger "just an example" my text ... endsnippet 有没有一种简便的方法可以代替复制代码段? 编辑:明确地说,我正在使用UltiSnips,但是如果有更好的插件,我可能会考虑一下。


1
自定义突出显示规则在哪里?
有时,我想用自己的首选项覆盖默认语法,以突出显示颜色和样式。 我认为最合适的方法是创建自己的颜色方案。但是我有几个问题。 如果我想为使用特定语言的特定语法组设置突出显示,这是否属于我的colorcheme,还是最好将其放置在after/syntax/[filetype].vim? highlight jsAssignExpIdent cterm=bold gui=bold 在colorscheme中放置晦涩的特定于语言的规则似乎有点奇怪,因为无论我使用哪种语言,它们都会被加载,但是在语法文件中放置突出显示规则似乎更糟。 有时,我会在中为特定语言创建新的语法规则after/syntax/[filetype].vim。如果其他用户想要使用这些扩展,是否适合在我那里提供链接到常见默认突出显示组的默认突出显示规则?如果另一个用户想要覆盖该突出显示颜色,他们应该怎么做? ::::: after/syntax/asm.vim ::::: syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/ highlight default link asmHexNumber Number


7
如何在vim中搜索与当前行匹配的行
我通常使用来搜索单词:/string,但是如果必须搜索整个当前行,该怎么做。 event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 例如,if cursor目前在line 1如何类似于:/包含整个当前行的文本的搜索中。光标应跳到匹配line 4,然后再跳到line 7

1
如何使用反引号扩展来填充arglist?
来自帮助:help backtick-expansion: On Unix and a few other systems you can also use backticks for the file name argument, for example: :next `find . -name ver\\*.c -print` :view `ls -t *.patch \| head -n1` The backslashes before the star are required to prevent the shell from expanding "ver*.c" prior to …

2
是否有任何Vim插件可实现崇高文本的热退出功能
热出口是Sublime Text编辑器的杀手级功能之一。它允许在任何时间关闭编辑器,而无需担心打开文件中的修改-它只是关闭而没有任何问题。再次启动ST时,所有打开和编辑的文件都将与关闭前的状态相同 我想知道是否有办法在vim中做同样的事情?
11 save 

1
无法解释的gq缩进问题
我将此文本插入Vim: t tttt ttttttttt tt tttt tt ttt tttttt-tttt-ttttttt tttttttttttttttttttttttttttttttttttttttttttttttttttttt ttttt ttt ttt tttttt ttttttt tttt ttttttt: ttttttt tt ttttttt, ttttttt tt tttttt, tttttt tt ttttttt, tttttt tt tttttt ttt. t tttttt tt ttt (tttt) ttttttt-tttttt-tt-ttttttt tttttt for the "tttttt in ttttttt" part of the issue (in the previous week …

2
如何检测swp文件是否包含未保存的更改?
使用gvim(v.7.4.488)编辑源代码时,我想对vcs进行一些更改(我在Ubuntu linux中从命令行使用git 2.1.4)。 git --status 显示我更改了哪些文件。但是,它还会显示.*.swp当前可见缓冲区的vim (如果文件包含未保存的更改,以及所编辑的文件与.*.swp-file 相同)。当然,git可以忽略这些文件,或者vim可以将交换文件存储在其他位置(请参见vim.wikia或stackoverflow上的此问题)。但是,我喜欢.*.swp-files git --status包含未保存的更改时显示的内容,因为它表明我正在以与我认为的状态不同的状态提交文件。 当保存的文件与-file相同时,如何避免出现.*.swp-files 的误报,同时能够看到要提交的文件与我用vim编辑的文件处于不同的状态?git --status.*.swp .*.swp当磁盘上的文件和vim中的文件不同时,是否只能使用-files? 还有其他方法可以检测未保存的文件吗? 与检测交换文件是否暗含未保存的文件相比,将@elyashiv和@VanLaser的注释组合起来会导致更简单的方法: 不要让git忽略。*。sw [po]文件; 提交时,如果git --status显示.*.sw[po]-files ,则:wa在vi中执行;和, 添加并提交。
11 git  swap-file 

2
Vim如何帮助我记住BibTeX文件中的结尾逗号?
我编辑了很多BibTeX文件,但我经常忘记结尾的逗号: 例如: @Book{cooke2015british, author = {Cooke, Lez}, title = {British Television Drama}, publisher = {Palgrave on behalf of the British Film Institute}, year = {2015}, keywords = {about} address = {London}, isbn = {978-1844576234} } 您会看到我忘了在后面添加逗号keywords = {about},这意味着我不得不花时间调试。Vim有什么办法可以让我记住?顺便说一句,我有bib_autocomp.vim插件...

1
vim中的单词级别差异
据我了解,默认的vimdiff只做逐行比较。但是,somtimes对于进行字级差异比较有用,尤其是对于Markdown,LaTeX等文本文件。有一些工具,例如wdiff或dwdiff可以进行字级差异。是否可以在vim中使用它们来比较两个文本文件?
11 vimdiff 

1
根据逗号分隔的单词排序
普通命令:sort可以根据列或虚拟列(\%c或\%v)对行进行排序,可以将更高级别的逻辑列用作排序键吗?在这种情况下,使用正则表达式看起来有点复杂(该列在行尾吗?),它看起来与sort实用程序(sork -k)相似,但是在Windows上无法使用此功能进行排序。Vim插件也将提供帮助。 例如,我想根据最后一列(用逗号分隔)对下面的2行进行排序。我的实际情况有更多的列和字符串模式。指定列定界符将大大简化它。 xxx,yyy,zzz,0x123 zzxz,xxxx,yyyy,0x121

2
矩形区域作为文本对象?
是否可以在vim中定义将作用于矩形区域的文本对象? 例如,假设我具有垂直对齐的文本列,如下所示: column 1 co column 2 col lumn 1 colu umn 2 column mn 1 column 2 column 2 c 1 column 1 olumn 2 colu 是否有可能定义一个textobject c为列,这样dac会删除列,yac将对其进行粘贴,cac要改变它,等等? (我知道控制-V选择一个矩形区域,我知道,你可以用d,y等删除,抽出等选定的区域。但我特别好奇,什么是可能使用文本对象。)

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.