VIM
vim 存在三种模式:
- 指令模式Command mode:把按键当做指令来处理
- 插入模式Insert mode:文本编辑。按
ESC
切换到指令模式,按:
切换到底线命令模式 - 底线命令模式Last line mode:连续搜索或替换字符串、存档以及结束程序
基本设置
在最后行模式下
- 显示行号:
set nu
- 关闭显示行号的功能:
set nonu
- 设置 tab 为 4 个空格:
set tabstop=4
- 设置自动缩进为 4 个空格:
set shiftwidth=4
但上面的设置是临时的,若想永久性的设置,如下操作:
jinbo@fang:~$ cd /etc/vim/
jinbo@fang:/etc/vim$ sudo chmod 777 vimrc
jinbo@fang:/etc/vim$ vi vimrc# 然后将下面的内容复制到文件尾部
syntax on "设置语法高亮,一般默认有,可不用添加此句
set tabstop=4 "设置制表符宽度为 4
set softtabstop=4 "设置软制表符宽度为 4
set shiftwidth=4 "设置缩进的空格数为 4
set autoindent "设置自动缩进
set cindent "设置使用 c/c++ 语言的自动缩进方式
set nu "设置在左侧显示行号
启动与退出
- 启动:
vim file
- 直接退出:
q
- 保存并退出:
wq
移动光标
- 方向建上下左右移动;
n+方向键
:表明向那个方向移动n
【常用】0
将光标移到该行的最前面$
将光标移到该行的最后面G
将光标移到最后一行的开头(必须大写)Ctrl+b
向上翻页,建议用PageUp
Ctrl+f
向下翻页,建议用PageDown
行定位
ngg
:光标定位到第n
行的开头
复制文本
yy
:复制光标所在行yw
:复制光标到单词尾部的所有字符nyy
:例如3yy
将光标位置所在的行与下面两行一起复制p
:粘贴复制的内容到光标所在位置
删除文本
-
x
:删除当前字符 -
d+右方向键
:删除当前字符 -
d+左方向键
:删除前面一个字符 -
d+上(下)方向键
:将光标所在行与上(下)一行同时删除 -
dd
:删除光标所在行
撤销
u
:撤销上一次操作U
:撤销对行所做的所有改变
搜索
使用/
加上需要查找的字符,再回车,进入向下查找。这时按n
查找下一个,N
查找上一个。
使用?
加上需要查找的字符,再回车,进入向上查找。这时按n
查找下一个(向上查找的下一个,刚好等于向下查找上一个,即N
),N
查找上一个(向上查找的上一个,刚好等于向下查找的下一个,即n
)。
一般在底线命令模式(按:
进入)下,使用/
向下查找。
大多数时候,在外部用grep
搜索到某个关键字的行号,然后用vim test.cpp +n
来打开一个文件,并跳转到第n
行