VIM 操作笔记

1:后退、前进

vim 中使用 Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
相关帮助: :help CTRL-O :help CTRL-I :help jump-motions

2:复制

yy::复制当前整行的内容到vi缓冲区
y$:复制光标所在位置到行尾内容到缓存区
y^:复制光标所在位置到行首内容到缓存区
yw:复制一个单词
5yw:复制五个单词,从光标处开始
5yy:复制五行

3:搜索

搜索特殊操作:
找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。
选中高亮:
在单词上输入:gd 高亮显示。
模糊搜索:
光标停留在想要查找的单词的任意一个字母上面, 然后输入Shift + * ,即可快速选中该单词,并且可以通过 n 或 N 进行上一个或下一个的匹配

4:替换

(1)全词匹配
如果你输入 /int,你也可能找到 print
要找到以 /int 结尾的单词,可以用:

/int\>

“>” 是一个特殊的记号,表示只匹配单词末尾。类似地,“>” 只匹配单词的开头。

一次,要匹配一个完整的单词 “int”,只需:

/\< int\>

(2)不区分大小写
默认是区分大小写的
先输入

:set ignorecase //忽略大小写

进行查找

再输入

:set noignorecase //恢复到大小写敏感

(3)区分大小写替换

上文中命令结尾的g即是替换标志之一,表示全局global替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:

空替换标志表示只替换从光标位置开始,目标的第一次出现:

:%s/foo/bar

i表示大小写不敏感查找,I表示大小写敏感:

:%s/foo/bar/i
# 等效于模式中的\c(不敏感)或\C(敏感)
:%s/foo\c/bar

c表示需要确认,例如全局查找"foo"替换为"bar"并且需要确认:

:%s/foo/bar/gc

回车后Vim会将光标移动到每一次"foo"出现的位置,并提示

replace with bar (y/n/a/q/l/^E/^Y)?

按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E^Y是光标移动快捷键
(4)替换一定范围内的内容
将1至3行的第一个a替换为b

:1,3s/a/b/

将1至3行的所有a替换为b

:1,3s/a/b/g

5:撤销,恢复

u:撤销上一步的操作
Ctrl+r:恢复上一步被撤销的操作

6:插入

按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

7:删除

x: 删除当前字符
3x: 删除当前光标开始向后三个字符
X: 删除当前字符的前一个字符。X=dh
dl: 删除当前字符, dl=x
dh: 删除前一个字符
dd: 删除当前行
dj: 删除上一行
dk: 删除下一行
10d: 删除当前行开始的10行。
D: 删除当前字符至行尾。D=dd: 删除当前字符之后的所有字符(本行)
kdgg: 删除当前行之前所有行(不包括当前行)
jdG(jd shift + g): 删除当前行之后所有行(不包括当前行)
:1,10d: 删除1-10行
:11,d: 删除11行及以后所有的行 :1,d: 删除所有行
J(shift + j):  删除两行之间的空行,实际上是合并两行。

8:保存,退出

:wq 保存并退出
ZZ 保存并退出
:q! 强制退出并忽略所有更改
:e! 放弃所有修改,并打开原来文件。

9: 新建文件并保存

在打开的VIM中新建文件并保存
命令模式输入:new filename
(1) vim 有个cd命令。
用来更改当前文件夹。
:cd sth
进入sth文件夹。
这样新文件保存之后就在当前文件夹。
不过如果你打开一个已经保存的文件后然后更改当前文件夹是不会改变保存路径的。
你必须为:write 指定参数。
(2)保存的时候可以指定路径:
:write sth/file.cpp
这样把文件保存到相对路径sth/下。你也可以使用绝对路径。
vim不会自动建立不存在的文件夹。你要手动建立。

10: 缩进

按v(或V)进入visual状态,选择多行,用>或<缩进或缩出

11:高亮与取消高亮

:noh //在命令模式下输入,取消高亮

将光标移动到所在的单词,然后输入

:gd //就会高亮

12: 使用VIM Tab与空格

makefile:4: *** missing separator. Stop.

原因 :Makefile只识别Table键,而无法识别空间开头的命令
解决方法 :通过在 vim编辑模式下组合“ ctrl + v + i ”来写入一个 tab键;
检查Makefile文件:od -t c makefile

13:刷新已加载的文件

:e 重新加载文件
:e! 强制丢掉本地修改,从磁盘加载文件

14:VIM 分屏功能

:ter  #分屏切换到终端
:vs   #当前窗口分屏

15: 配置

我们现在已经能快速的分别光标所在的位置了,但是离我们最终需要的 效果还差一些,因为当前行是一条横线,所以有时候很难区分英文的逗号 和句号,在这个基础上我们需要加入一下配置

highlight CursorLine   cterm=NONE ctermbg=black(可以用下图数子代替) ctermfg=green guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black(可以用下图数子代替) ctermfg=green guibg=NONE guifg=NONE

highlght 主要是用来配色的,包括语法高亮等个性化的配置。可以通过:h highlight,查看详细信息

CursorLineCursorColumn 分别表示当前所在的行列

cterm 表示为原生vim设置样式,设置为NONE表示可以自定义设置。

ctermbg 设置终端vim的背景色

ctermfg 设置终端vim的前景色

guibgguifg 分别是设置gvim的背景色和前景色,本人平时都是使用终端打开 vim,所以只是设置终端下的样式,下图是我的配置截图:

image.png

现在配合上终端的颜色就很酷了,顺便说一下自己的感受,vim的学习曲线比较 陡峭,但是随着对vim的学习深入,编辑效率确实发生了大幅度的提高,最后觉 得这些付出是值得的。一般学会使用vim之后都会长期的使用,我觉得其中一个 原因就是难学,因为难学,所以付出了很多,所以越舍不得抛弃,自己编辑器 的配置都是一行一行慢慢打磨出来的,产生了比较深厚的感情。
配置截图如下:
image.png

image.png

色彩配置参见如下网站:
https://jonasjacek.github.io/colors/

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

推荐阅读更多精彩内容

  • 光标移动 h 光标左移,同 <Left> 键j ...
    guanguans阅读 1,833评论 0 16
  • 待整理~ 1、vim ~/.vimrc 进入配置文件 如果不知道vimrc文件在哪,可使用 :scriptname...
    spfanlost阅读 1,705评论 0 0
  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,349评论 0 2
  • VIM操作 命令模式下的使用 光标的移动前下上后hjkl行首:0行尾:$文件开始位置:gg文件末尾:G行跳转:6G...
    纳尼小僧阅读 390评论 2 1
  • 我们中的大部分,都希望能有更多的时间陪伴家人,然不是待在办公室内。 在传统工作方式下,人们必须遵守规定的上下班时间...
    梅晨斐阅读 1,619评论 1 7