vim常用命令

Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。Vim的第一个版本由Bram Moolenaar在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的慈善软件。


Vim是Linux上著名的文本编辑器,他是早年的Vi编辑器的加强版。gVim是Vim的图形前端,它是跨平台的编辑器,基本上主流的操作系统上面都有它的版本。这是一个国际版本,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,请放心使用。这个极具Unix特色和风格(simple is the best)的编辑器相信会给您带来不同的感受。


快捷键
1、光标的移动


这里说的光标移动是指在正常模式下光标的移动。
最简单是方向键,它即使在插入模式下仍可使用,但不是最方便。


h 在当前行向左移动一个字符,或者Backspace。
j 移动到下一行,或者Enter。
k 移动到上一行,或者- 号。
l 在当前行向右移动一个字符,或者空格键Space。


Ctrl+f 向下翻页,或者PageDown。
Ctrl+d 向下翻半页。
Ctrl+b 向上翻页,或者PageUp。
Ctrl+u 向上翻半页


0(零) 移至行首,不管有无缩进就是跳到第0个字符(包含空白字符,如缩进的空格),或是Home 键。
$ 移至行尾, 或End 键。
% 调到与当前括号匹配的括号处,如果当前是{,则跳到}处。
^ 移到行首第一个非空白字符。
G 移动到文档末尾。
gg 移动到文档开头。
w 移动到下一个word的开头,按标点或单词分割。
W 移动到下一个word的开头,长跳,如end-of-line被认为是一个字。
b 移动到上一个word的开头。
B 移动到上一个word的开头,长跳。
e 移动到下一个word的末尾或者本word的字尾。
E 移动到下一个word的末尾或者本word的字尾,长跳。
Fx 在本行移动到x所在的位置,如FH移动到H所在的位置,Fw移动到w所在的位置
Tx 在本行移动到x所在的位置的下一个字符.
gd 移动到当前光标所在的变量的声明处。
ge 移动到上个word的末尾。
[N]G 跳至第N行,如0G 等价于gg,100G就是第100行
`. 跳至上一次编辑的位置。




大写的W B E 和w b e 效果一样但会忽略像. - 等特殊字符。
中文因为是连在一起的,所以如果没有空格或者数字、英文标点的话,将视为一个word。


( 光标移至上一个语句的句首,句子是以. ? ! 标点来判断的。
) 光标移至下一个语句的句首
{ 光标移至段落的开头,段落是以空白行来判断的。
} 光标移至段落的结尾
H 将光标移至屏幕顶第一个非空白字符。
M 光标移至屏幕中间第一个非空白字符。
L 光标移至屏幕底第一个非空白字符。这和PageDown,PageUp 不一样,内文内容并未动,只是光标在动而已。
:n 将光标定位到第n行。
n| 将光标移动到本行第n个字符。




2、打开
vim + abc 打开abc文件并将光标定位到文件的末尾
vim +3 abc 打开abc文件并将光标定位在第三行
vim +/xxx abc 打开abc文件,并将光标定位到xxx字符第一次出现的行




3、退出
:e test.txt 打开test.txt文件进行编辑,文件不存在则创建。???
:w 保存文档,但不退出vim编辑器。
:q 不保存文档,退出vim编辑器。
:x 保存文档然后退出vim编辑器
:wq 保存文档然后退出vim编辑器。按ZZ(注意Z是大写的,并且不是在命令模式)或者:x效果是一样的。
:q! 放弃所有修改强制退出,按:q不能退出时就试试这个吧。




4、删除
Ctrl+e 删除屏幕文档第一行
dd 删除光标所在行
5dd 删除5行,根据前面的数字来删除
dw 删除一个字(word)
df+字符 删除到下一个字,符包含该字符
dt+字符 删除到该字符前面一个字符
df+标点符号 在本行内删除当前光标所在位置到标点符号所在位置的所有内容(包含标点符号)
di+" 删掉"内的所有字符,不包含"。
da+" 删掉"内的所有字符,包含"。
x 删除当前字符
X 删除前一个字符
D 删除至行末
cc 删除当前行并进入编辑模式。
cw 删除当前一个字并进入编辑模式。
c$ 删除从当前位置到行末并进入编辑模式。
s 删除当前字符并进入编辑模式
S 删除光标所在行的内容,并进入编辑模式。
dG 从光标所在处删除到行末


5、复制
yy 复制一行 ,此命令钱前可跟数字,如6yy,表示从当前行开始复制6行
yw 复制一个字
y$ 复制到行末




6、粘贴
p 粘贴粘贴板的内容到光标所在行的下面
P 粘贴粘贴板的内容到光标所在行的上面
]p 有缩进的粘贴,vim会自动调节代码的缩进
10p 粘贴10次,根据前面的数字来粘贴


7、查找
/pattern 向下搜索字符串pattern
?pattern 向上搜索字符串pattern
n 下一个匹配(如果是/pattern,则是向下的先一个,如果是?pattern则是向上的下一个)
N 上一个匹配
* 查找光标所在处的单词,向下查找。
# 查找光标所在处的单词,向上查找。




8、替换
:%s/old/new/g 搜索整个文档,将所有的old替换为new
:%s/old/new/gc 搜索整个文档, 将所有的old替换为new,不过每次都会询问你是否替换
r 替换一个字符。


9、书签
ma 把当前位置存成标签a
`a 跳转到标签a处


10、编辑
i 从当前光标处进入编辑模式
I 进入插入模式,并将当前行位于行首
a 追加模式,置光标于当前光标之后
A 追加模式,置光标于行末
o 在当前行之下插入一行,并进入插入模式
O 在当前行之上插入一行,并进入插入模式
ESC 退出编辑模式
J 将下一行和当前行连接为一行。
xp 交换当前字符和下一个字符。
Ctrl+r 重做
. 重复上一个编辑命令
~ 切换大小写,当前字符
g~iw 切换当前字的大小写
gUiw 将当前字切换成大写
guiw 将当前字切换成小写
>> 将当前行右移一个单位(一个tab)
<< 将当前行左移一格单位


同时编辑多个文件(标签页功能)
:tabe fn 在一个新的标签页中编辑fn文件
gt 切换到下一个标签页
gT 切换到上一个标签页
:tabr 切换到第一个标签页
:tabl 切换到最后一个标签页


窗口命令
Ctrl+w s 水平分割窗口
Ctrl+w w 切换窗口
Ctrl+w q 退出当前窗口
Ctrl+w v 垂直分割窗口




11、可视模式


标记文本
v 进入可视模式 单字符模式
V 进入可视模式 行模式
Ctrl+v 进入可视模式 列模式
o 跳转光标到选中块的另一个端点(对角点)
O 跳转光标到选中块的另一个端点(行首行末)
U 将选中块中的内容转换成大写
aw 选中一个字
ab 选中括号内的所有内容,包括括号本身
ib 选中括号内的所有内容,不包含括号
aB 选中{}中的所有内容
iB 选中{}中的所有内容 不包含{}

对标记进行动作
> 块右移
< 块左移
y 复制块
d 删除块

~ 切换块中内容的大小写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值