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向上翻页,建议用PageUpCtrl+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行
