前言
- vim语法高亮
vim ~/.vimrc
// 然后在文件中添加如下代码
syntax on
colorscheme darkblue
1. 插入文本
-
- Normal模式与Insert模式
- Normal模式:键入的每个自负都被视为一个命令
- Insert模式:键入的自负作为实际要输入的文本内容,使用
i
命令(insert)
-
- 现在是什么模式?
- 打开显示模式:
:set showmode
- 关闭显示模式:
:set noshowmode
-
- 模式之灾
- 使用Vim经常忘记自己身在何种模式,或者不经意敲了那个字符就切换到别的模式去了,按再次
Esc
,如果Vim以一声蜂鸣来回答你,那说明你已经是在Normal
模式了。
-
- 移动光标
- 移动光标命令
K 上 h 左 l 右 j 下
- 也可以用箭头键来移动光标,会大大的降低效率,想象一下要是一下你在一小时内这样的做一百次会占用你多少时间?在编辑器中移动光标是十分常用的操作,这些字符在键盘上都分布在你右手周围,精心挑选的。
-
- 删除字符
-
- 删除一个字符命令:
x
- 这是在追忆古老的打字机的时代,在打字机上删除字符就是用xxxx来覆盖它的。
- 删除一个字符命令:
-
- 删除一行命令:
dd
- 删除后下边的行会移上来填补空缺。
- 删除一行命令:
-
- 删除换行符命令:
J
- 把两行合并为一行,也就是说两行之间的换行符被删除了。
- 删除换行符命令:
-
- 撤销和重做
-
- 撤销命令:
u
(undo)
- 如果误删除了过多的内容,命令
u
更简便,它可以撤销上一次的操作。 - 撤销命令还有另一种形式,
U
命令,它一次撤销对一行的全部操作,即打开文件时的状态。
- 撤销命令:
-
- 重做命令:
ctrl + r
(repeat)
- 如果你撤销了多次,可以用
ctrl + r
来反转撤销的动作,换句话说它是对撤销的撤销。
- 重做命令:
-
- 其他编辑命令
-
- 追加
- 在光标之后插入文本命令:
a
(append) - 另起一行命令:
o/O
-
o
命令可以在当前行的下边另起一行,并使当前模式反转为Insert模式,而大写的O
,是在当前行的上边另起一行。
-
-
- 使用命令计数
- 指定的数字要紧挨在它所有修饰的命令前边。
- 假设你要向上移动9行,这可以用
kkkkkkkkk
或者9K
来完成。 - 行尾追加三个感叹号,可以用
a!!!
,另一个办法是3a! <Esc>
命令。 - 删除3个字符可以用
3x
-
- 退出
- 放弃编辑命令:
q!
- 有时你会在做了一连串的修改之后突然意识到最好是放弃所有的修改重新来过,这个命令由3个部分组成:冒号
,
,用以进入冒号命令行模式:q
命令,告诉编辑器退出;最后是强制命令行的修饰符(!)
- 有时你会在做了一连串的修改之后突然意识到最好是放弃所有的修改重新来过,这个命令由3个部分组成:冒号
- 放弃所有修改后还想以该文件的初始内容作为开始继续编辑:
e!
(edit) - 保存并退出命令:
ZZ
或者:wq
(write quit)
2. 帮助文档
你想做的任何操作都可以在vim的帮助文文件中找到答案,所以不用怕问问题。
- 打开帮助命令:
:help
或者F1
- 打开帮助命令:
- 打开用户手册的目录:
:help usr_toc.txt
- 打开用户手册的目录:
-
- 常用的帮助命令的使用
-
- 查看关于某个特殊主题的帮助:
:help {subject}
-
:help x
关于x命令的帮助
-
-
:help deleting
关于如何删除的内容
-
-
:helo index
所有vim命令的索引
-
- 查看关于某个特殊主题的帮助:
-
- 关于某个控制字符的帮助:
CTRL-{subject}
:help CTRL-A
- 关于某个控制字符的帮助:
-
- 查找其他模式下的帮助
-
:help i_CTRL-H
insert模式
-
-
:help v_CTRL-B
Visusl模式
-
-
:help c_CTRL-B
Command模式
-
-
- 关于命令行选项:
-{subject}
-
:help -R
vim -R file.txt 以只读模式打开文件
-
- 关于命令行选项:
-
- 关于命令行选项的说明:
showmode
:help 'showmode'
- 关于命令行选项的说明:
-
- 特殊键用尖括号中的简单的描述性名字表示
:help i_<Up>
-
- 错误ID号的作为帮助的主题
:help {错误ID}
-
- 关于函数
subject
的帮助
-
:help add()
在vimscript中使用
-
- 关于函数
-
- 关于编译时特性
+subject
的帮助
:help +visual
- 关于编译时特性
-
- 查找一个以
pattern
开始的帮助标记,重复按Tab
查看其他匹配的帮助标记
:help pattern<Tab>
- 查找一个以
-
- 同时列出匹配
pattern
的所有可能的帮助主题
:help pattern<Ctrl-d>
- 同时列出匹配
-
- 在所有帮助文档中搜索全部文本查找指定的pattern
:helpgrep pattern
-
:copen
打开快速列表 直接回车键进入编辑
-
-
:cclose
关闭快速列表
-
-
:cn
下一匹配
-
-
:cprev 或者 :cN
前一个匹配
-
-
:cfirst
第一个匹配
-
-
:clast
最后一个匹配
-
3. 移动
要想把vim玩得好,移动是必备的技能点。
-
- 以word为单位的移动
-
w
命令(word):光标向前移动一个word,光标会移动到下一个word的首字符上,同时可以加计数前缀,如3w
,将光标向前移动3个word。 -
b
命令(backward):光标向后移动到前一个word的首字符上,同时可以加计数前缀,如3b
,将光标向后移动3个word。 -
e
命令(end of word):光标向前移动到下一个word的最后一个字符上。 -
ge
命令:光标向后移动到前一个word的最后一个字符上。- 以上命令如果遇到连字符
/ - _ . 、(
等等,按下大写的命令即可。 - 混合使用这几种不同的大小写命令,可以让你更快的在文本前后移动。
- 以上命令如果遇到连字符
-
- 移动到行首或行尾
-
$
命令:光标移动到当前行行尾,与End
键作用相同,可以接受计数命令,如2$
表示下一行的行尾。 -
^
命令:光标移动到当前行第一个非空的字符上。 -
0
命令:光标移动到当前行第一个字符上,与Home
键作用相同。
-
- 移动到指定的字符上
-
f
命令(find):向后单字符搜索命令,如fx
在当前行查找下一个字符x,同时也可以使用计数命令,如3fx
。 -
F
命令:向左单字符搜索命令。 -
t
命令(to):向右单字符搜索命令,只不过不是把光标停留在被搜索字符上,而是它之前的一个字符上。 -
T
命令:向左单字符搜索命令。- 可以同时与
;
键来重复使用这些命令。
- 可以同时与
-
- 以匹配一个括号为目的移动
-
%
命令:光标跳转到与当前光标相匹配的括号上,括号:() [] {}- 如果当前光标没有停留在一个可用的括号字符上,会向前找到第一个括号,与之匹配。
-
- 移动到指定行
-
G
命令(go):光标定位到计数指定的行,如果没有指定计数,光标会定位到最后一行。 -
gg
命令:定位到第一行与1G
的效果相同。 -
%
命令:光标定位到计数指定的行上,如50%
,90%
等。
-
- 告诉你当前的位置
-
Ctrl-g
命令:显示信息行,如行号,总行数,以及当前行在文件中的百分比。 -
set number
命令:显示行号。 -
set nonumber
命令:关闭显示行号。 -
set ruler
命令:显示当前光标的位置。 -
set noruler
命令:关闭显示当前光标的位置。
-
- 滚屏
-
Ctrl-u
命令(up):文本向下滚动半屏,窗口向上滚动半屏。 -
Ctrl-d
命令(down):文本向上滚动半屏,窗口向下滚动半屏。 -
Ctrl-e
命令(extra):文本向上滚动一行,窗口向下滚动一行。 -
Ctrl-y
命令:文本向下滚动一行,窗口向上滚动一行。 -
Ctrl-f
命令(forward):文本向下滚动一屏,窗口向上滚动一屏。 -
Ctrl-b
命令(backward):文本向上滚动一屏,窗口向下滚动一屏。 -
zz
命令:当前行置于正中央。 -
zt
命令(top):当前行置于屏幕顶端。 -
zb
命令(bottom):当前行置于屏幕底端。
-
- 简单搜索
-
- 常用命令
-
/{string}
命令:向下搜索一个字符串。 -
?{string}
命令:向上搜索一个字符串。-
n
命令:下一次搜索,可以加计数命令。 -
N
命令:上一次搜索,可以加计数命令。-
. * ^ ~ $
有特殊的意义,需要一个反斜杠\
。
-
-
-
- 大小写问题
-
:set ignorecase
:开启搜索忽略大小写。 -
:set noignorecase
:关闭搜索忽略大小写。
-
- 命令历史记录
- 按下
/
来搜索,先别按回车键,上箭头键会显示你上一次进行搜索的命令。
-
- 在文本中查找下一个word
-
*
命令:向下搜索下一个当前光标所在的单词。 -
#
命令:向上搜索下一个当前光标所在的单词。- 默认以
\<{word}\>
,完整的单词搜索。
- 默认以
-
- 查找整个word
-
\>
:单词结束符。 -
\<
:单词开始符。 -
\<{word}\>
:完整的单词搜索。
-
- 高亮显示搜索结果
-
:set hlsearch
命令(highlight search): 开启高亮显示搜索结果。 -
:set nohlsearch
命令: 关闭高亮显示搜索结果。 -
nohlsearch
:去掉当前的高亮显示
-
- 调整搜索
-
:set incsearch
:开启使用键入莫表字符串同时就开始搜索。 -
:set noincsearch
:关闭使用键入莫表字符串同时就开始搜索。 -
set warpscan
:开启到达文件的尾部会向另一个方向进行搜索。 -
set nowarpscan
:关闭到达文件的尾部会向另一个方向进行搜索。
4. 简单的搜索模式
vim使用正则表达式进行搜索的功能十分的强大。
-
- 一行的开头与结尾
-
^
字符:匹配一行的开头。 - $字符:匹配一行的结尾。
-
- 匹配任何一个字符
-
.
字符:匹配任何一个字符。- 备注:如果是特殊字符,需要反斜杠。