Vi & Vim

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

3
如何使拼写检查选择窗口允许我键入自己的更正?
在进行拼写检查时,键入key z=,将显示一个选择列表,如下所示。 如您所见,正确的拼写;“ ie”未显示为任何选项。我想增强此菜单,以便我可以只键入“ ie”并按Enter并替换它。 如果在同一步骤中如果我可以开始输入所提供选项之一的名称,并且制表符与此竞争,那也很好-我的想法是通过输入单词而不是输入数字来替换单词。 我怀疑这需要通过插件来完成,但我不确定这不只是配置选项。

1
vimdiff和合并冲突
在源代码控制下合并分支时,通常会与其他开发人员发生合并冲突的问题。 我知道我们可以使用vimdiff将代码更改与源代码控制进行差异化,但是还有一种方法可以使用vimdiff帮助解决合并冲突冲突。 我个人对git感兴趣,但是了解是否有其他源代码控制工具/系统的插件/技术会很有用。

2
如何更改Vim的启动或简介屏幕?
当我启动没有任何文件的Vim时,总是看到以下信息: VIM - Vi IMproved version 7.4.580 by Bram Moolenaar et al. Vim is open source and freely distributable Become a registered Vim user! type :help register<Enter> for information type :q<Enter> to exit type :help<Enter> or <F1> for on-line help type :help version7<Enter> for version info 我该如何更改? 具体来说,我想将shell命令(fortune)的输出放在这里。 我知道vim-startify ; …

4
如何在宏中将单词转换为camelCase?
我有一个单词列表,像这样: these are some words that I want to convert to camel case 我需要一种方法来转动,例如,camel case到camelCase一个宏(或一个办法把每一行视线选择到骆驼情况下)内。 我可以wgUlhx根据需要使用任意多次,但是问题是这不适用于长度不一的单词(因此,例如,它wgUlhxwgUlhx适用于convert this please但不适用于convert these pretty please)。 上述行的期望输出为 theseAre some wordsThatIWant toConvertTo camelCase 有什么办法可以自动化吗?

1
是否可以在Vim中轻松使用.odt,.doc,.docx,.rtf和其他非纯文本格式?
偶尔有人送我一个.odt,.doc和.docx文件; 在OpenOffice中打开它们总是很痛苦,因为OpenOffice。 现在,我使用各种命令行工具(例如odt2txt)将这些文件转换为纯文本,将纯文本保存到临时文件,然后在Vim中查看(或编辑)它。 可以简化吗?也许与自动组有关?还是有更好的方法?我只想做: $ vim file.odt Vim为我照顾了转换吗? 更好的(加分点)是,如果我还能够保存文件(到file.txt),但是在我执行写操作之前不会创建该文件...

3
如何在Vim中使用更改树
是否可以检索我“放弃”的更改分支?例如,我使用撤消了几个操作u,然后更改了插入模式。但是后来我意识到我不想进行此更改,我宁愿回到开始时的状态(撤消之前)。 这些变化会永远消失吗?
14 undo-redo 

1
显示部分隐藏的包装线
我set wrap linebreak nolist在.vimrc中启用了自动换行。但是,这具有令人讨厌的行为,即屏幕上不完全可见的行被完全隐藏并替换为@符号: 即使部分隐藏了这些线,我如何显示它们?
14 wrapping 

1
是否存在使用触摸屏上的vim的解决方案?
实际上,当我使用Android手机中的ssh登录到linux服务器时,我遇到了这个问题,并且尝试使用vim编辑一些文件。 虽然我可以用普通的台式机/键盘做所有事情,但还是有点令人不快。 扩展:有一个问题,为什么我可以做我想做的事而令人讨厌。例如,5j45|在触摸屏上模拟键盘上打字时,触摸触摸屏上的预期字符位置时,信息率(在大脑和设备之间)要低得多。

2
VIM交换文件最佳做法?
每当我因失去连接而退出vim会话时,我都会感到很满足(但是我仍会继续使用vim ...我必须是受虐狂),因为当我再次打开文件时,会交换一堆-文件正在等待破坏我的工作。使用vim交换文件的最佳实践是什么?您只是选择最新的吗?如果文件按您期望的方式工作,您是否只是删除交换文件?您如何摆脱它们?
14 swap-file 

2
如何有条件地加载插件
我正在寻找答案,但是还没有找到任何东西,因此,如果我错过了明显的内容,我深表歉意。我认为这将是Google的快速搜索,所以它可能比我想象的要复杂。 我希望能够根据我正在编辑的文件类型有条件地加载插件。例如,当编辑python时,我不希望vim-sexp安装的键绑定,但是在使用clojure时,我确实希望加载该插件。 我目前正在使用neovim和病原体,但是如果有其他插件管理器可以为我完成这项工作,那么我会愿意进行切换。另外,如果确实存在,是否会:set syntax whatever切换插件?因为那将是超级:) 在此先感谢您的帮助/指导!


6
如何将一组缓冲区绑定到选项卡?
当我需要同时处理不同的项目时,我有以下工作流程: 我为每个项目创建一个选项卡。 在每个选项卡中,打开要编辑的文件,这将创建多个缓冲区。 可选地,如果我需要同时查看两个(或多个)文件,则可以创建拆分窗口,因此我有一个包含不同窗口的选项卡,其中显示了一个缓冲区。 我的缓冲区我真的不使用之间进行切换:ls,并:b [name or number of buffer]代替我创造了一些方便的映射,让我与缓冲区之间切换:bnext,并:bprevious 这种工作方式非常好,但让我感到困扰:缓冲区在选项卡之间共享。 如果我打开file1,并file2在tab1和file3中tab2,如果tab1我用几个时间:bnext我会看到file3在这个标签,我不想。我想要得到的工作流程如下: 启动vim(我有一个带有缓冲区的第一个选项卡): $ vim foo 将缓冲区添加到此选项卡: :e bar 打开一个新标签并切换到它: :tabnew 在此选项卡中打开一个新缓冲区: :e baz 如果我留在此缓冲区中并且:bnext还是:bprevious要留在baz缓冲区中(因为它是此选项卡中唯一的缓冲区) 如果我进入上一个选项卡:tabprevious并执行几次,则:bnext只能在foo和bar缓冲区之间切换,但看不到baz 因此,我的问题来了:是否可以将一组缓冲区绑定到一个选项卡,并使vim禁止从另一个选项卡(而不是它们要进入的那个)访问某些缓冲区? 注意:我知道使用:b [myBuffer]可以在选项卡中保留缓冲区,但是当我要编辑3或4个文件时,我觉得使用映射的速度确实比输入缓冲区名称要快(即使我可以仅键入一些字符以匹配缓冲区名称)。

3
多个光标位于所需位置
我正在使用vim-multiple-cursors插件。 我想将光标恰好放在我想要的位置。例如([x]是光标位置): Lorem ipsum dolor sit amet[1], consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna[2] aliqua. 在Sublime Text中,我通常会放置第一个光标,然后使用箭头键转到下一个位置并放置第二个光标。 VIM中有类似的东西吗? 与此插件或另一个。 编辑 以下评论,我的兴趣这样做试图写的时候出现 \section[My first section in this book]{My first section in this book} 在一个.tex文件中。我的第一反应是写\section[]{},然后把两个光标为了写里面的同样的事情[]和{}。 其他示例是_someStuff在几个不同的变量名称之后添加。例如,将其打开: variable1 = 2 my_variable2 = 12 var3 = 14 到这个: …

3
阻止更改为只读文件
当使用Vim编辑一个只读文件时,它只会在第一次编辑时提供一个警告,但允许进行任何更改。我可以理解,这种行为对打算以其他名称保存文件的人可能有用。但是有时我会打开我没有写权限的文件,然后忘记进行更改。 是否可以进入一种模式,在这种模式下,Vim将允许查看文件但阻止进行更改的任何选项?


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.