我的vim使用心得

本文介绍了Vim编辑器的基本模式及其操作命令,包括Normal、Insert、Command和Visual模式下的实用技巧,如文本剪切、复制、替换及文件分屏等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 欢迎转载,转载请务必注明出处:http://blog.youkuaiyun.com/alading2009/article/details/39853773  


    vim是vi的增强版,即Vi IMproved,号称Linux下的编辑利器,用了一段时间,的确犀利。下面记录一下我的一些使用心得。


1、欲练此功,必先。。。了解几种模式啦

     使用vim之前,先简单了解一下几种常用的模式,即Normal、Insert、Command、Visual,我们所有的操作都将在这几种模式下完成。正常使用vim打开文件,默认进入Normal模式;在Normal模式键入i,进入Insert模式;Normal模式键入冒号(:),进入Command模式;Normal模式下键入v,进入Visual模式。模式间切换(除了某些命令执行后会自动切换外),可按esc先进入Normal模式,再切换进入需要的模式。如下图所示:


    各个模式下可完成的操作不同,只有把各个模式贯通起来,才能把vim的强大之处发挥出来。看过《武状元苏乞儿》吗?把前十七掌融会贯通,才能一气呵成地使出威力最大的第十八掌。


2、先说Normal模式下的一些操作


操作效果
D从光标处删除到行末
y$从光标处复制到行末
P粘贴至当前行上面
p粘贴至当前行下面
np粘贴n次
d$剪切当前光标处到行尾
d^剪切当前光标处到行首
dd剪切当前行
dj剪切当前行的上一行
dk剪切当前行的下一行
ndd剪切当前行开始往下的n行
dw剪切当前单词
dG从当前行剪切到文件尾
yw复制当前单词
yy复制当前行
nyy复制当前行开始往下的n行
cc剪切当前行,并进入Insert模式
ncc剪切n行,并进入Insert模式
^光标跳至行首
$光标跳至行尾
gg光标跳至文件尾
G光标跳至文件头
w以单词为单位向右移动
nw向右移动n个单词的距离
b以单词为单位向左移动
nb向左移动n个单词的距离
gUw将光标所在单词变为大写
guw将光标所在单词变为小写
gUU将光标所在行变为大写
M将光标跳至屏幕中间行
L将光标跳至屏幕底行
H将光标跳至屏幕头行
u撤销前一步操作
Ctrl+r重做前一步操作
h以字符为单位向左移动
l以字符为单位向右移动
k光标上移一行
j光标下移一行
o在当前行的下一行插入一行空行,然后进入Insert模式
O在当前行的上一行插入一行空行,然后进入Insert模式
%匹配括号移动
(比如光标停在{处,这时通过该操作可以移动到与该花括号匹配的}处,很有用的一个功能)
*匹配光标当前所在的单词,移动到下一个匹配处
#匹配光标当前所在的单词,移动到上一个匹配处
i进入Insert模式
v进入Visual模式
:进入Command模式
/进入Command模式的向上搜索
?进入Command模式的向上搜索


    Normal模式下常用的操作以上基本都包括了,别看那么多,在实际使用过程中,每次上手几个,逐渐就熟悉了,熟能生巧嘛。而且常用的也就那么几个。



3、Insert模式没啥好说的,接下来咱就进入Command模式,这个模式好玩,列下我的常用操作


操作效果
:w保存更改
:q退出
:q!强制退出,不保存更改
:wq保存更改,然后退出
:x同:wq
:saveas <path/file>文件另存为
:sp file上下分割,新开一个文件(即上下分屏显示)
:vsp file左右分割,新开一个文件
:set nu显示行号
:set nonu不显示行号
:s/pattern1/pattern2/将当前行中从左往右第一个匹配上pattern1模式的字符串替换为pattern2
:s/pattern1/pattern2/g将当前行中所有匹配上pattern1模式的字符串替换为pattern2
:n1,n2s/pattern1/pattern2/g将从n1行到n2行中所有匹配上pattern1模式的字符串替换为pattern2
:n1,n2s#pattern1#pattern2#g实现的功能同上一行,要点在于当模式中包含/时,可以使用#作分隔符,代替/,以避免冲突,当然也可以选用其他字符作为分隔符代替/
:.,n2s/pattern1/pattern2/g将从当前行到第n2行中所有匹配上pattern1模式的字符串替换为pattern2
:n1,$s/pattern1/pattern2/g将从n1行到结尾行中所有匹配上pattern1模式的字符串替换为pattern2
:n1,+2s/pattern1/pattern2/g将从n1行到n1+2行中所有匹配上pattern1模式的字符串替换为pattern2
:s/^/#/在当前行的行首添加#,在编写bash脚本时,可以方便地注释多行
:%s/pattern1/pattern2/g将文件中所有匹配pattern1的字符串替换为pattern2
:/pattern光标向下搜索匹配pattern模式的字符串,n移动到下一个匹配处,N移动到上一个匹配处
:?pattern光标向上搜索匹配pattern模式的字符串,n移动到下一个匹配处,N移动到上一个匹配处
:5光标跳到第5行
:+2光标往下跳2行
:-2光标往上跳2行
:n1,n2d删除n1到n2行
   

    很有用,特别是替换,跳行,分屏这些。



4、Visual模式,用的不多,简要列一下


操作效果
d剪切选中部分
D剪切选中行
v复制选中部分
c剪切选中部分,并进入Insert模式
C剪切选中行,并进入Insert模式



5、补充


操作效果
vim -O2 file1 file2同时打开2个文件,并垂直分屏
vim -o2 file1 file2同时打开2个文件,并水平分屏
vim file1 file2打开2个文件,:bn切换到下一个,:bf切换到上一个
Ctrl+w l切换到右屏(Normal模式下)
Ctrl+w h切换到左屏
Ctrl+w k切换到上屏
Ctrl+wj切换到下屏
Ctrl+wL当前屏向右移动
Ctrl+w H当前屏向左移动
Ctrl+w K当前屏向上移动
Ctrl+w J当前屏向下移动


    觉得不够的话,可以看下这两个链接:

    大牛的:http://coolshell.cn/articles/5426.html

    这个讲了个map,没用过,可以试试:http://haoxiang.org/2011/09/vim-modes-and-mappin/

   

    要是还觉得不过瘾的话,那就请在终端命令行输入vimtutor,对着帮助文档自己撸吧。


欢迎转载,转载请务必注明出处:http://blog.youkuaiyun.com/alading2009/article/details/39853773


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值