Vim三种模式:(重要
)
导航(navigation)模式: 这时候,字母就是上下左右键。
输入模式:你按字母键,才会输入字母。
命令模式:需要先输入":
" 冒号,才会进入。例如,你输入 :ls
,就相当于运行了ls
命令。
上下左右
h
左l
右
j
下k
上
下一个词,上一个词(常用
)
w: 下一个词。 (word) b: 上一个词。 (backword)
向下一屏,向上一屏(常用
)
ctrl + f: 向下一屏(f = forward) ctrl + b: 向上一屏(b = backward)
选择多行(常用
)
shift + v #然后上下移动
(你也可以 直接 v
然后上下左右移动, 这也是选择多行,只是不是整行整行的选择。动手试一下吧!)
复制/粘贴(非常常用
)
y#复制反白的地方 d#删除反白的地方 yy#复制光标所在的那一行(常用) dd#删除光标所在的那一行(常用)
搜索(常用
)
/ #搜索 some_thing: n #继续搜索下一个: shift + n #搜索前一个
在当前整个文件中,替换(也叫全局替换)(常用
)
:%s/原来的字符串/新字符串/
(如果某个字符串在某一行出现了多次,希望对它所有出现的次数都替换的话,就在末尾加个g
(global
) ,像这样: :%s/原来的字符串/新字符串/g
)
局部替换(非常常用
)
先v或 shift + v
选中若干行,然后:s/原来的/新的字符串
。
跳到行首, 行末(常用
)
跳到当前行的末尾: shift + 4 (意为 $,这是正则表达式中 末尾的意思) 跳到当前行的行首: 0
快速跳到文件首行 , 尾行。
“跳到尾行” 这个功能很多时候很有用
gg: 第一行 shift + g: 末行。
快速跳到 上一次 / 下一次编辑的地方
跳到 上一次编辑的地方: g + ; 跳到 下一次编辑的地方: g +,
返回上一次/下一次编辑的文件或位置(非常常用
)
快速返回上一次编辑的文件: ctrl + o ( o 意为 outer ) 快速返回下一次编辑的文件: ctrl + i ( i 意为 inner )
输入模式(常用
)
输入文本
从导航模式到编辑模式,有下面几种方法:
在光标前输入: i ( insert ) 在光标后输入: a (append / after ) 在行首增加内容: shift + i 在行末增加内容: shift + a 在光标下行增加内容: o 在光标上行增加内容: shift + o (这个操作往往会有500毫秒的延迟)
删除(常用
)
以下删除都以当前光标作为起始位置。
删掉一个字母:x 删掉一个单词: dw 删掉一行: dd 删掉多行: shift +v,然后 x 或者 d
复制与粘贴(常用
)
复制,或者删除(vim认为删除就是剪切,所有被删掉的内容,都会被放到复制缓冲区中
)后,就可以粘贴了。
复制一个单词: yw 复制当前行: yy 粘贴: p
自动补全(常用
)
凡是在 Vim
缓冲区中(近期打开过的文件)的代码,都可以补全。
从上到下选择候选词: ctrl + n 从下到上选择候选词: ctrl + p
设置背景 是亮还是暗
切换背景色(很多默认的linux 其实vim很难看的)
:set background=dark 深色背景色 :set background=light 亮色背景色
代码配色
每个人心中的代码配色都不同。 你的呢?
:colorscheme <主题名> 主题名包括: desert,deepblue,vividchalk 等等。 (不少需要到网上下载)
分割屏幕(非常常用
)
让一个27寸显示器显示多个窗口是很酷的事儿,分屏另一个很重要的作用是在一屏中实现不同文件间的复制粘贴,而不需要切换到另一个窗口。
竖屏分割: vs (vertical split缩写) 横屏分割: sp (split缩写) 来回跳换: ctrl + w + w (跳到下一个小窗口),或者 ctrl + w + <j/k/h/l> (跳到某个方向的小窗口)
注释多行(非常常用
)
1.v或者shift + v 选中多行 2.shift + : 3.s/^/\/\/ #:s/原来的/新的字符串
取消注释(常用
)
:s/\/\/
Tips:/^/
正则表达式,表示行首
为多行代码格式化(常用
)
多行选中后, 按 =
即可。 (注意:不是100%好用。 因为有的代码本身就是不完整的)
显示/隐藏行数
:set number 显示行数 (或者:set nu) :set nonumber 取消行数(或者:set nonu)
折叠/取消折叠过长的行(常用
)
:set wrap 折叠 :set nowrap 取消折叠
粘贴模式(常用
)
Vim
正常模式下的粘贴,会导致粘贴的代码一行接一行的缩进。 如果要取消这种缩进的话,就要进入到 "粘贴模式". (记得在这个模式下,无法使用 ctrl + t
命令来快速打开文件。 )
:set paste 进入到粘贴模式 :set nopaste 取消粘贴模式
Tips:大部分情况下不用粘贴模式,因为快速查找模式可能打不开文件。
代码左移/右移 与 重复上一次操作。
在我们格式化代码时会用到,极度好用。
Tips:你写的任何代码都要人肉加上良好的格式化,能为你个人减少大量错误。
左移: 选多行后, < 右移: 选多行后, > 重复上次操作:
撤销/重做 (非常常用
)
u
#复原前一个操作ctrl + r
#重做上一个操作