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的几个插件:

vim做成IDE方法:


参考列表
《完美应用Ubuntu(第3版)》-何晓龙-电子工业出版社-2017/01
https://segmentfault.com/a/1190000016330314
https://blog.csdn.net/LSG_Down/article/details/89319472

posted @ 2020-03-06 17:55  foxerz  阅读(1426)  评论(2编辑  收藏  举报