Vim的使用技巧---世上最好用的编辑器

愿把每一件事做好

vim是一个模式化的编辑器,它一共有三种模式,编辑模式(命令模式)、输入模式、末行模式。
三种模式之间的切换如下图:


vim.png

从图中可以看出,可以在编辑模式下可以随意切换到输入模式和末行模式,而输入模式和末行模式只能切换回编辑模式(命令模式)。

编辑模式(命令模式):

当使用vim编辑文件时默认是在编辑模式下,按zz可以从编辑模式下退出vim,编辑模式的操作如下:

Motion Command

j :光标向下移动,一次移动一行。
k:光标向上移动,一次移动一行。
h:光标向左移动。
l:光标向右移动。
w:将光标移至下一个单词的词首
e:将光标移至当前或下一个单词的词尾
b:将光标移至当前或前一个单词的词首
0:将光标移至行首(绝对行首)
^:将光标移至行首的第一个非空白字符
$:绝对行尾
G:将光标移至最后一行
gg:将光标移至第一行
Ctrl+f:向下翻一页
Ctrl+b:向上翻一页
Ctrl+d:向下翻半页
Ctrl+u:向上翻半页

数字+[motion] 可以实现更快捷的跳转例如:

#h:光标向左移动#位
#j :光标向下移动#行
#k:光标向上移动#行
#l:光标向右移动#行
#w:自光标所在位置单词起,向后移动到第#个单词的词首
#e:自光标所在位置单词起,向后移动到第#个单词的词尾
#b:自光标所在位置单词起,向前移动到第#个单词的词尾
#G:将光标移至第#行

Edit Command

i:在当前光标所在字符的前面,转为输入模式
a:在当前光标所在字符的后面,转为输入模式
o:在当前光标所在行的下方,新建一行,并转为输入模式
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式
.:重复前一次编辑操作
x:删除光标处字符
r:替换光标处字符
R:替换模式,相当于windows的insert模式
dd:删除一行
yy:复制一行
p:将此前删除或者复制了的文字粘贴到当前光标上一行。
P:将此前删除或者复制了的文字粘贴到当前光标下一行。
c:同d命令,只是删除后进入输入模式。
u:撤销上一次操作
Ctrl+r:撤销上一次撤销
v:可视化操作,按字符选取
V:可视化操作,按行选取

数字+[edit]+[motion] 可以实现更快捷的操作例如:

#x:删除自光标起向后第#个字符。
#dw:删除自光标起第#个单词,光标位于第#+1个单词词首
#de:删除自光标起第#个单词,光标位于第#个单词词尾
#db:删除光标所在单词以及前#-1个单词 共#个单词
#dd:删除包括当前光标所在行在内的#行
#d$:删除光标至行尾的所有字符
#d^:删除光标至行首第一个非空白字符的所有字符
#d0:删除光标至绝对行首的所有字符

输入模式 :

进入输入模式就可以对文件进行编辑,按ESC可以回退到编辑模式(命令模式)。

末行模式 :

在编辑模式下按:可以切换到末行模式,末行模式的操作如下:

General Command

:q 不保存退出
:wq 保存退出
:x 保存退出
:q! 不保存退出 强行
:w 保存
:w 路径 :将文件另存到另一个文件
:w! 强行保存 (管理员)
:r 路径 :把文件读入当前光标位置
:! COMMAND:可执行shell命令

Motion Command

:#:输入行号,回车即可跳转到第#行
:StartADD,EndADDd:删除从StartADD开始至EndADD的所有文字;d表示删除
:StartADD,EndADDw 路径:把从StartADD开始至EndADD的所有文字另存到另一个文件中去;w表示写

其中,StartADD和EndADD可以被替换为下面几种通配符

. :表示当前行
$ :表示最后一行
+#:向下的#行
$-1:倒数第二行

例如:.,$d 表示删除从当前行起到最后一行。.,+2d 表示删除包括当前行以及向下的两行。

Search Command

/PATTREN:顺序遍历
?PATTERN:倒序遍历
n:下一个匹配项
N:上一个匹配项

Replace Command

:StartADD,EndADDs @PATTERN@string@gi:表示查找从StartADD开始至EndADD中所有匹配的项,并把它替换为string;g表示全部替换(默认只替换第一次匹配到的项),i表示忽略大小写
可以把StartADD,EndADD替换为%,表示全文搜索替换

Configuration Command

set nu :显示行号
set nonu:取消行号显示
set ic :显示忽略或区分大小写字符
set ai:设定自动缩进
set noai:取消设定自动缩进
set hlsearch:查找到的文本高亮显示
set nohlsearch:取消高亮显示查找到的文本
syntax on :语法高亮

上面的配置只对当前打开的vim生效,关闭之后再此打开又恢复到原样,如果想一直生效,可以去/etc/vimrc或者~/.vimrc(没有可新建)文件里进行配置

打开文件

打开一个文件

vim +# :打开文件,并定位光标于第#行。
vim + :打开文件,并定位光标于最后一行。
vim + /PATTERN :打开文件,并定位光标于第一次被PATTERN匹配到的行的行首。这里PATTERN指的是正则表达式。

打开多个文件

vim [option] FILE1 FILE2 FILE3..

-o:水平分割显示文件
-O:垂直分割显示文件
Ctrl+w+方向键可在分屏模式下切换光标

如果不加参数打开多个文件
在末行模式下可进行下列操作
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
:qa 全部退出
Ctrl+w+s: 水平拆分窗口显示

Ctrl+w+v: 垂直拆分窗口显示

是不是感觉命令很多,不太容易记?哈哈哈,反复练习就很快能记住了。加油!!!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,312评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,578评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,337评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,134评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,161评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,303评论 1 280
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,761评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,421评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,609评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,450评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,504评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,194评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,760评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,836评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,066评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,612评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,178评论 2 341

推荐阅读更多精彩内容

  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 3,119评论 0 3
  • 曾经在思科的工厂测试系统`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超过2年半,现在...
    戈多在地狱阅读 1,781评论 1 13
  • 自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...
    小知大知阅读 788评论 0 0
  • 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可...
    三十儿阅读 412评论 0 1
  • 最近,真的好多心烦的事啊……
    悦曦swws阅读 131评论 0 0