vim
为什么要使用vim
什么是vim
vi编辑器是Linux系统下的标准(文本)编辑器(windows中的notepad),vim可以看作是vi的升级版。vi用于文本编辑,vim更适用于coding
vim的优点
- vim的优点在于它可以在不用鼠标的情况下进行高效的文本编辑,这需要在一定数量的练习后形成肌肉记忆。
- 在vim的插件下,可以支持多种语言环境。
- vim不挑食,它可以适应恶略的硬件环境,也可以定制自己专属的vim界面。
- vimscript文本语言的使用
我对vim的看法
对于我来说,使用vim的初衷也许只是懒得使用鼠标,且vim的界面看起来更加极客吧,它可以使你看起来像一个hacker。现代的编辑器也都非常好,开箱既食,相反,vim最开始会将你折磨的很痛苦,但一旦驯服了vim,你就会享受到极致的自由,那种指尖飞舞的快乐,这适用于每一个热爱折腾,喜欢个性的人。
vim的安装
对于vim的安装,这里不过多赘述,大家可以根据自己的系统参考官方文档,或者参考别人的博客。可以用以下命令进行查看是否安装了vim及版本号。这里一定使用8.0以上。以下插件使用方法仅适用于vim 8.0及其以上。
vim --version
小技巧
以下几点,搭配vim可以更快脱离鼠标
Ctrl + T :新建标签页
Ctrl + W:关闭当前标签页
Ctrl +1, 2, 3,…, 8:切换到指定序号的标签
Ctrl + 9:切换到最后一个标签
- 小插件vimium
vimium 就是参考了 vim 按键操作方式和理念而来的浏览器插件,但使用及其简单。
基础配置
- 在.vimrc文件中添加如下内容
一般linux的.vimrc文件在~/.vimrc
cd ~
touch ~/.vimrc
vim ~/.vimrc
"========== 基础 ========
" 设置行号
set number
" 高亮设置
set hlsearch
" 相对行号
set relativenumber
" 设置折叠方式
set foldmethod=indent
" F2进入粘贴模式(set paste)
set pastetoggle=<F2>
" 使用TAB键向后四个字符
set tabstop=4
" 设置语法高亮
syntax on
" 在底部显示出当前模式
set showmode
" 命令模式下显示键入的指令
set showcmd
" 支持使用鼠标
set mouse=a
" 使用utf-8编码
set encoding=utf-8
" 启用256色
set t_Co=256
" 下一行的缩进与上一行保持一致
set autoindent
" 光标当前行高亮
set cursorline
" 遇到指定符号才拆行
set linebreak
" 光标遇到括号时自动高亮对应的另一个
set showmatch
" 搜索时高亮显示匹配结果
set hlsearch
" 进入搜索模式时,输入后自动跳转
set incsearch
"设置vim可以使用back键"
set backspace=2
"使用系统剪切板
set clipboard=unnamed
vim常用指令大全
安装插件
- 在Vim8及以上的版用户只需要将插件放在指定的目录(.vim/pack/vendor/start/)下,vim 启动时候就会自动加载这个插件。
vim-startify插件
插件说明: 给vim添加开始界面,并且记录历史打开的文件
vim-startify 下载地址
mkdir -p ~/.vim/pack/startify/start
cd ~/.vim/pack/startify/start
git clone https://github.com/mhinz/vim-startify.git
- 使用说明
直接输入vim可显示最近使用的文件
NERDTree插件
插件说明:给vim增加目录
NERDTree下载地址
mkdir -p ~/.vim/pack/NERDTree/start
cd ~/.vim/pack/NERDTree/start
git clone https://github.com/preservim/nerdtree.git
"===== NERDTree =====
"显示隐藏文件
let NERDTreeShowHidden=1
"打开NERDTree的快捷键设置 ctrl-n打开
nnoremap <C-n> :NERDTree<CR>
"关闭NERDTree
nnoremap <C-t> :NERDTreeToggle<CR>
""打开NERDTree,在node中选中当前文件
nnoremap <C-f> :NERDTreeFind<CR>
"vim打开时,自动打开NERDTree,并且将光标放在文件窗口
autocmd VimEnter * NERDTree | wincmd p
"当NERDTree是唯一的窗口时退出vim
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
"设定 NERDTree 视窗大小
let g:NERDTreeWinSize = 25
" 隐藏指定文件夹
let NERDTreeIgnore = ['\.pyc$', '\.swp', '\.swo', '\.vscode', '__pycache__']
ctrl + w + h 光标 focus 左侧树形目录
o 在已有窗口中打开文件、目录或书签,并跳到该窗口
go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
i split 一个新窗口打开选中文件,并跳到该窗口
gi split 一个新窗口打开选中文件,但不跳到该窗口
s vsplit 一个新窗口打开选中文件,并跳到该窗口
gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
q 关闭 NerdTree 窗口
gruvbox插件
插件说明:主题插件,改变代码颜色和背景
gruvbox 下载地址
mkdir -p ~/.vim/pack/gruvbox/start
cd ~/.vim/pack/gruvbox/start
git clone https://github.com/morhetz/gruvbox.git
"设置暗色背景"
set background=dark
"配色方案选用gruvbox"
colorscheme gruvbox
airline插件
插件说明:给vim增加状态栏
airline下载地址
mkdir -p ~/.vim/pack/gruvbox/start
cd ~/.vim/pack/gruvbox/start
git clone https://github.com/vim-airline/vim-airline.git
更多插件
- comentary插件:批量注释
注释操作符命令为 gc,在选中模式下批量注释 - ctrlp:模糊搜索
按下ctrl+p即可进行模糊搜索 indentline:显示缩进 rainbow:彩虹括号 surround:自动匹配括号 - jedi-vim:自动补全插件
编辑模式下按下ctrl+space即可出现补全列表 - autopep8:根据规范自动规范代码
在普通模式下按下F8即可以自动修正 autocmd FileType python noremap :call Autopep8() #去除窗口的对比 let g:autopep8_disable_show_diff=1 - auto-pairs(自动补全括号)
|