VIM快捷键、命令及配置整理
VIM,神一样的编辑器,Linux平台下的标配,互联网行业Linux服务器代码编辑必备工具之一,结合作者使用总结,优点如下:
- 不依赖鼠标,完全命令行操作(这才是真正的程序员)
- 强大的组合快捷键(会带给你意外的惊喜)
- 体积小巧,配置灵活(强大的插件,可以配置出大型IDE才有的功能)
- 习惯之后操作效率极高(就像打字一样,越打越熟)
- Linux发行版基本上都已经默认安装了
配置文件:
- 配置文件一般位于
/etc/vim/vimrc
,有的系统位于/etc/vimrc
,这是全局配置,也可以在用户目录配置~/.vimrc
或~/.vim/vimrc
。 - 配置文件主要配置一些永久性的配置命令,如显示行号
set nu
。
- 配置文件一般位于
模式:
- 普通模式(一般模式):vim filename之后进来的就是普通模式,编辑、命令行模式下按esc键也可以退回到普通模式
编辑模式(以下快捷键均基于普通模式下操作)
- 光标前插入
i
进入编辑模式 - 行首插入
I
进入编辑模式 - 光标上一行插入
o(小写)
进入编辑模式 - 光标下一行插入
O(大写)
进入编辑模式
- 光标前插入
视图模式(以下快捷键均基于普通模式下操作)
- 单字选择模式
v(小写)
进入视图模式 - 整行选择模式
V(大写)
进入视图模式
- 单字选择模式
命令模式
- 普通模式下,按
:
可以直接进入命令模式进行输入命令操作,常用命令下面介绍
- 普通模式下,按
快捷键:
移动光标(普通模式、视图模式)
- 向上
k
、向下j
、向左h
、向右l
- 行首
shift + ^
、行尾shift $
- 前一单词
b
、下一单词w
、移到词尾e
- 向上半屏
ctrl + u
、向下半屏ctrl + d
- 向上一屏
ctrl + b
、向下一屏ctrl + f
- 屏幕最上一行第一个字符
H
- 屏幕中间一行第一个字符
M
- 屏幕最下一行第一个字符
L
- 移到第一行
gg
、移到最后一行G
- 移动到上一个{(花括号开始)
[{
- 移动到下一个}(花括号结束)
]}
- 向上
复制粘贴(普通模式、视图模式)
- 复制一行
yy
或Y
- 复制多行
y + number + y
,number代表复制的行数,以光标所以的行开始往下数 - 粘贴,
p(小写)
粘贴到光标之后(如果是复制整行,则粘贴到光标所在行的下面) - 粘贴,
P(大写)
粘贴到光标之前(如果是复制整行,则粘贴到光标所在行的上面) - PS:复制也可以按
v(小写,单个字符选择)
或V(大写,整行选择)
进入视图模式进行选择,选择完成后按y
完成复制
- 复制一行
删除、剪切(普通模式、视图模式)
- 删除、剪切光标覆盖的单个字符
x(小写)
- 删除、剪切光标前的单个字符
X(大写)
- 删除、剪切当前行
dd
- 删除、剪切多行
d + number + d
,number代表复制的行数,以光标所在的行开始往下数 - PS:删除、剪切也可以按
v(小写,单个字符选择)
或V(大写,整行选择)
进入视图模式进行选择,选择完成后按d
删除、剪切
- 删除、剪切光标覆盖的单个字符
查找
- 查找
/filter
,filter是要查找的字符串,回车确认 - 查找下一个
n
- 查找上一个
N
- 查找
自动补全(在编辑模式下)
- 代码补全
ctrl + x + n
或ctrl + n
或ctrl + p
,仅限于代码上下文中已经存在的代码文本进行补全 - 路径补全
ctrl + x + f
- 代码补全
常用命令:
- 保存文档
:w
- 关闭文档
:q
,强制关闭(注意,这个会直接退出不提示是否保存):q!
- 重新打开文档
:e
- 显示行号
:set nu
,隐藏行号:set nonu
- 粘贴模式
:set paste
,关闭粘贴模式:set nopaste
- 设置制表符宽度
:set tabstop=4
,4为宽度,可以换成你想要的数字,一般一个制表符宽度为4个字符 - 使用空格代替制表符
:set expandtab
- 设置编码格式
:set fenc=utf-8
- 关闭vi的键盘模式,使用vim自己的
:set nocompatible
- 语法高亮
:syntax on
- 高亮显示当前行
:set cursorline
- 显示标签栏
:set showtabline=2
在状态栏上显示当前所在的行数和列表数
:set ruler
:set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
- 保存文档
我所使用的vim配置文件
配置文件一般存放于
/etc/vimrc
或~/.vim/vimrc
中
""""""""""""""""""""""""""""""
" 文本格式和排版
""""""""""""""""""""""""""""""
" 继承前一行的缩进方式
set autoindent
" 设置制表符宽度为4
set tabstop=4
" 统一缩进为4
set shiftwidth=4
" set softtabstop=4
" 使用空格代替制表符
set expandtab
" 不要换行
"set nowrap
""""""""""""""""""""""""""""""
" 一般设定
""""""""""""""""""""""""""""""
" 设置默认编码
set fenc=utf-8
set fencs=utf-8,gb2312,gbk
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" history文件中需要记录的行数
set history=10000
" 在处理未保存或只读文件时候,弹出提示
set confirm
" 语法高亮
syntax on
" 显示行数
set nu
" 高亮显示当前行
set cursorline
hi CursorLine cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
" 显示标签栏
set showtabline=2
" 显示不同的底色色调
" set bg=dark
" 支持退格删除文字
set backspace=indent,eol,start
""""""""""""""""""""""""""""""
" 文件设置
""""""""""""""""""""""""""""""
" 不要生成备份文件
set nobackup
" 在状态上显示当前所在的行数和列数
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
" 搜索的时候忽略大小写
set ignorecase
" 设置编码
set encoding=utf-8
""""""""""""""""""""""""""""""""""""""""
" 函数补全功能(只有是PHP文件的时候)
""""""""""""""""""""""""""""""""""""""""
au FileType php call AddPHPFuncList()
function AddPHPFuncList()
set dictionary-=/home/hai191273/.vim/doc/php_funclist.txt dictionary+=/home/hai191273/.vim/doc/php_funclist.txt
set complete-=k complete+=k
endfunction
""""""""""""""""""""""""""""""""""""""""
" taglist插件
""""""""""""""""""""""""""""""""""""""""
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
""""""""""""""""""""""""""""""""""""""""
" 设置NerdTree
""""""""""""""""""""""""""""""""""""""""
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>
欢迎加入 Typecho 大家族