Vim/vi生存指南

tse*_*lon 21 vi vim

什么是必不可少的vim命令?新用户需要知道什么才能避免陷入麻烦?请注意每个评论一个命令.

hon*_*ter 27

我和我一直保持着一张Vi参考卡多年.这非常有用.


tzo*_*zot 14

我认为不可替代的东西(因为它在vi中工作,与vim的视觉模式不同)是标记.你可以用m(小写)标记各种斑点,然后用你选择的字母标记(例如x).然后你去其他地方,可以用"x (backquote letter) to the exact spot, or with"x`(撇号字母)回去.

这些运动可以用作命令的参数(yank,delete等).例如,您要删除10行; 而不是计数然后移动到最顶行并进入10dd,你转到块的开头或结尾,按mm(标记m),然后转到块的另一端,然后按d'm(删除撇号m).如果在此示例中使用反引号而不是撇号,则删除将按字符方式工作,而不是按行工作.尝试用"mark m"标记在行的中间,移动到另一行的中间,然后输入"d backquote m",你会看到我的意思.

  • 你说对我来说,我说回报.:) (4认同)
  • 一个反引号转到书签所在的位置.像这样:`ma`在光标位置加书签,而``a`滚动到它. (2认同)

Dom*_*tos 8

当我学会了使用*或#分别搜索,向下或向上搜索光标下的单词时,我感到非常高兴.确保:set incsearch:set hlsearch第一.


Sar*_*ien 5

当你有一些重复的动作采取宏通常比正则表达更快.只需输入

q[0-9a-z] in normal mode
Run Code Online (Sandbox Code Playgroud)

很多人用

qq
Run Code Online (Sandbox Code Playgroud)

因为它很快 再次按正常模式下的q可停止录制.然后输入

@[0-9a-z] in normal mode
Run Code Online (Sandbox Code Playgroud)

重复刚刚录制的内容.

@q
Run Code Online (Sandbox Code Playgroud)

对于上面的例子.

编辑添加:你也可以重复宏.假设您编写了一个宏来跳转到一条线的头部,插入一个标签,然后向下跳一行.然后,通过键入"@q"来运行它一次测试您的宏.然后,您可以通过键入"9 @ q"重复该动作九次.


小智 3

首先你需要知道如何关闭vi:ctrl-c :q!

休息可以从 vimtutor 找到。在命令行中输入 vimtutor 启动 vimtutor