vim配置方式与看上去比较高端的vim配置
快速上手vim,终端执行vimtutor
,不用谢。
vim的在线游戏练习网站:http://vim-adventures.com/挺好玩的,要钱...
先晒张图显摆一下;😃
配置方式
临时配置、永久配置、快捷键配置
临时配置
直接在底行模式下输入配置命令,比如显示行号,底行模式执行set nu
就能显示行号,退出后配置不再生效。
永久配置
将配置项写到配置文件中,每次打开vim会自动配置。此配置文件不止一个,/usr/share/vim/.vimrc
、/etc/vim/vimrc
还有用户配置文件~/.vimrc
,都行都行,底行模式执行h vimrc
能看到所有会搜索配置文件的地方。建议在~/.vimrc
或~/.vim/vimrc
添加用户的配置,不会影响到其他用户,也能保留root的样子。比如显示行号,创建~/.vimrc
文件,加上配置语句set nu
。
快捷键配置
基于永久配置方法,在配置文件中匹配快捷键。以显示行号为例:
noremap <F6> :set nu
noremap <F7> :set nonu
按下F6键自动写入<F6>
。使用时在命令模式下F6,自动在底行模式写入命令set nu
,回车执行。
vim简单配置
vim的帮助文档里可以查看配置项:help vimrc-intro
。vim有很多帮助文档,设置成中文学起来方便。
命令 | 功能 |
---|---|
set nu | 显示行号 |
set nonu | 取消行号 |
set cul | 突出显示当前行 |
set cuc | 突出显示当前列 |
set showmatch | 括号匹配 |
set completeopt=preview,menu | 自动补全代码 |
set cindent | 自动缩进 |
set tabstop=4 | 设置Tab键为4个空格 |
set shiftwidth=4 | 设置自动缩进长度为4空格 |
set autoindent | 继承前一行的缩进方式,适用于多行注释 |
set mouse=a | 在终端中使用鼠标 |
我的vim配置
系统配置,末尾追加了下面这两行,为了随时取消/显示行号,考虑到复制的时候会把行号也复制上。
noremap <F6> :set nu
noremap <F7> :set nonu
用户配置,我写上注释啦,但是有些忘记是什么意思了:
"set encoding=utf-8
set nu "显示行号,已在系统配置里设置<F7>取消显示,方便使用。
set nocp "不以兼容模式运行vi。
syntax enable "开启语法加亮。
syntax on
set helplang=cn "设置中文文档,英文en,中文cn。前提是已经调好了中文文档。
set history=30 "命令记录次数。
colorscheme pablo "配色风格。
set shortmess=atI "简洁启动模式。
set showcmd "在状态栏显示目前所执行的指令。
set cursorline "显示当前行。
set hlsearch "高亮显示搜索。
set ru "显示标尺。
"设定 GUI 选项
"set guioptions=gmrLtT m:菜单 T:工具栏
"set guioptions=gmrLt "我忘记这两行是干嘛的了...
"设置缩进
set tabstop=4 "将‘\t’转换成4个空格。
set softtabstop=4 "为了按Backspace时将4个空格当作一个Tab。
set shiftwidth=4 "设置tab宽度。
set expandtab "用空格代替制表符。
set cindent "以c语言风格自动缩进。
set smartindent "自动识别以#开头的注释,不进行换行。
"set autoindent "配合下面一条命令根据不同语言类型进行不同的缩进操作。这个不太懂,注释了。
"filetype plugin indent on
"设置命令行和状态栏
set cmdheight=1 "命令行行数。
set laststatus=2 "显示状态栏。
set statusline=%F%m%r,%Y,%{&fileformat}\ \ %l,%c%V\ %p%%\ \ [\ %L\ lines\ in\ all\ ]\ \ ASCII=\%b,HEX=\%B
" 设置在状态行显示的信息如下:
" %F 当前文件名
" %m 当前文件修改状态
" %r 当前文件是否只读
" %Y 当前文件类型
" %{&fileformat}当前文件编码
" %b 当前光标处字符的 ASCII 码值
" %B 当前光标处字符的十六进制值
" %l 当前光标行号
" %c 当前光标列号
" %V 当前光标虚拟列号 (根据字符所占字节数计算)
" %p 当前行占总行数的百分比
" %% 百分号
" %L 当前文件总行数
" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White
setlocal noswapfile "不要生成隐藏文件。
"这一段忘了从哪看到的了,也不知道啥意思。
" When started as "evim", evim.vim will already have done these settings.
"if v:progname =~? "evim"
" finish
"endif
"以下是从vimtutor里复制来的。
" Get the defaults that most users want.
source $VIMRUNTIME/defaults.vim
if has("vms")
set nobackup " do not keep a backup file, use versions instead
else
set backup " keep a backup file (restore to previous version)
if has('persistent_undo')
set undofile " keep an undo file (undo changes after closing)
endif
endif
if &t_Co > 2 || has("gui_running")
" Switch on highlighting the last used search pattern.
set hlsearch
endif
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Put these in an autocmd group, so that we can delete them easily.
augroup vimrcEx
au!
" For all text files set 'textwidth' to 78 characters.
autocmd FileType text setlocal textwidth=78
augroup END
else
set autoindent " always set autoindenting on
endif " has("autocmd")
" Add optional packages.
"
" The matchit plugin makes the % command work better, but it is not backwards
" compatible.
" The ! means the package won't be loaded right away but when plugins are
" loaded during initialization.
if has('syntax') && has('eval')
packadd! matchit
endif
其他
vim打开文件小技巧
如果知道要编辑文件的行数,比如说/etc/passwd文件的第18行,就可以使用VIM精确定位所打开文件sudo vim +18 /etc/passwd
。
VIM一次性可以打开两个文件,比如/etc/passwd和/etc/group,使用Ctrl+W组合键切换到另外一个窗口sudo vim -O /etc/passwd /etc/group
。
vim的几个插件:
- MiniBufExplorer缓存管理器:http://www.vim.org/scripts/script.php?script_id=159。
- Ctags标签工具:http://www.vim.org/scripts/script.php?script_id=610。
- VisualMark高亮书签(类似UltraEdit书签功能):http://www.vim.org/scripts/script. php?script_id=1026。
- SuperTab补全插件:http://www.vim.org/scripts/script.php?script_id=182。
- Python开发插件:http://www.vim.org/scripts/script.php?script_id=790。
- C/C++开发插件:http://www.vim.org/scripts/script.php?script_id=213。
- PHP开发插件:http://www.vim.org/scripts/script.php?script_id=1571。
vim做成IDE方法:
- https://github.com/HenryHo2015/maximum-awesome。
- https://github.com/HenryHo2015/Vundle.vim。
- https://github.com/HenryHo2015/oh-my-zsh
参考列表
《完美应用Ubuntu(第3版)》-何晓龙-电子工业出版社-2017/01
https://segmentfault.com/a/1190000016330314
https://blog.csdn.net/LSG_Down/article/details/89319472