vi编辑器是Linux系统下的标准(文本)编辑器(windows中的notepad),vim可以看作是vi的升级版。vi用于文本编辑,vim更适用于coding
对于我来说,使用vim的初衷也许只是懒得使用鼠标,且vim的界面看起来更加极客吧,它可以使你看起来像一个hacker。现代的编辑器也都非常好,开箱既食,相反,vim最开始会将你折磨的很痛苦,但一旦驯服了vim,你就会享受到极致的自由,那种指尖飞舞的快乐,这适用于每一个热爱折腾,喜欢个性的人。
对于vim的安装,这里不过多赘述,大家可以根据自己的系统参考官方文档,或者参考别人的博客。可以用以下命令进行查看是否安装了vim及版本号。这里一定使用8.0以上。以下插件使用方法仅适用于vim 8.0及其以上。
vim --version
以下几点,搭配vim可以更快脱离鼠标
如果是windows电脑,推荐使用全新终端Windows Terminal,增加了很多新特性,包括窗口透明化、基于行的选择等。
浏览器快捷键搭配(这里以微软自带的edge为例,大同小异不同浏览器可自行搜索,同时可将浏览器固定于任务栏,使用win+数字快捷打开软件)
Ctrl + T :新建标签页
Ctrl + W:关闭当前标签页
Ctrl +1, 2, 3,…, 8:切换到指定序号的标签
Ctrl + 9:切换到最后一个标签
~/.vimrc
cd ~
touch ~/.vimrc # 如果没有则新建
vim ~/.vimrc
"========== 基础 ========
" 设置行号
set number
" 高亮设置
set hlsearch
" 相对行号
set relativenumber
" 设置折叠方式
set foldmethod=indent
" F2进入粘贴模式(set paste)
set pastetoggle=
" 使用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常用指令大全
插件说明: 给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下载地址
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 :NERDTree
" 关闭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 左侧树形目录
#打开文件。有加g和没加g的区别是:加g,光标还在文件目录上;没加g,光标会跳到新窗口或者标签
o 在已有窗口中打开文件、目录或书签,并跳到该窗口
go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
i split 一个新窗口打开选中文件,并跳到该窗口
gi split 一个新窗口打开选中文件,但不跳到该窗口
s vsplit 一个新窗口打开选中文件,并跳到该窗口
gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口
#在文件目录间移动
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
#切换根目录,即显示文件目录
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
#退出
q 关闭 NerdTree 窗口
插件说明:主题插件,改变代码颜色和背景
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
插件说明:给vim增加状态栏
airline下载地址
mkdir -p ~/.vim/pack/gruvbox/start
cd ~/.vim/pack/gruvbox/start
git clone https://github.com/vim-airline/vim-airline.git