vim操作总结

vim常用命令主要分为增删改查以及移动:

vim插件的使用

主要的配置全部在~/.vimrc 中,在使用之前,先安装插件管理工具。

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
#如果没有安装成功,sudo /etc/hosts 中添加 151.101.108.133 raw.githubusercontent.com

安装这个在.vim/autoload这个目录下之后,在vimrc里面使用下述命令即可安装各类插件,列出我常用的几个插件:

call plug#begin('~/.vim/plugged')
Plug 'vim-airline/vim-airline'
Plug 'preservim/nerdcommenter'
Plug 'jiangmiao/auto-pairs'
Plug 'neoclide/coc.nvim'
Plug 'neoclide/coc-python'
Plug 'neoclide/coc-highlight'
Plug 'preservim/nerdtree'
Plug 'tomasr/molokai'
Plug 'Yggdroot/LeaderF'
Plug 'preservim/nerdcommenter'
call plug#end()

" theme
let g:molokai_original=1
let g:rehash256=1
colorscheme molokai

let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_right_sep = '◀'
let g:airline_left_sep = '▶'
let g:airline_left_alt_sep = '❯'
let g:airline_right_alt_sep = '❮'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'

set mouse = r

" NERDTree
map <C-n> :NERDTreeToggle<CR>

" Add spaces after comment delimiters by default
let g:NERDSpaceDelims = 1
" Use compact syntax for prettified multi-line comments
let g:NERDCompactSexyComs = 1
" Align line-wise comment delimiters flush left instead of following code indentation
let g:NERDDefaultAlign = 'left'
" Set a language to use its alternate delimiters by default
let g:NERDAltDelims_java = 1
" Add your own custom formats or override the defaults
let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } }
" Allow commenting and inverting empty lines (useful when commenting a region)
let g:NERDCommentEmptyLines = 1
" Enable trimming of trailing whitespace when uncommenting
let g:NERDTrimTrailingWhitespace = 1
" Enable NERDCommenterToggle to check all selected lines is commented or not
let g:NERDToggleCheckAllLines = 1

直接复制粘贴到vimrc中,然后使用先保存整个文本, 然后再PlugInstall即可配置好整个vim了。

note: 'neoclide/coc.nvim'中的一些坑,首先要求安装好nodejs,但是会报错,这个时候在.vim/coc.vim下,使用yarn install 安装好,然后会提示在 [coc.nvim] creating data directory: /Users/zhehu/.config/coc

Normal的模式下:

移动

:14表示跳到14行;gg直接跳到行首 :G表示到最后一行 y(yank)表示复制 p表示粘贴

14gg同样表示14行;hjkl是左上下右四个方向。0快速跳转到本行行首,$表示跳转到本行行尾

w移动到下一个单词的开头,b移动回上一个单词。

ctrl+o 表示跳到上一个位置

ctrl+f 向下翻页

ctrl+u向上翻页

查: f (find)

fsf表示在某一行查找,这里就是表示查找一个出现s的字母。Fsfs正好相反,表示反向查。使用 查找下一个。

/全文查单词某个

? 全文逆向查某个单词

改: c (change)

ciw(change inner word ) 会把这个单词删掉,然后在单词首处insert模式。

ct { ) "" = ci")> change to ""表示把包含在这个里面的单词改变,在首处进入到insert模式

删: d (delete note:所有的删除操作实际上都是剪切操作,都可以使用p剪切进去

u表示撤销操作;dw表示删除一个单词;daw表示把单词对应的空格也删掉,diw表示只删除不包含空格的单词

x删除光标所对应的这个字母

dd表示的是剪切整行

在insert模式下

增加文本:

a append A

i insert I

o open new line O

大写表示反向

ctrl+w在insert 模式下删除单词

vim多窗口模式

目录树使用

?: 快速帮助文档
o: 打开一个目录或者打开文件,创建的是 buffer,也可以用来打开书签
go: 打开一个文件,但是光标仍然留在 NERDTree,创建的是 buffer
t: 打开一个文件,创建的是Tab,对书签同样生效
T: 打开一个文件,但是光标仍然留在 NERDTree,创建的是 Tab,对书签同样生效
i: 水平分割创建文件的窗口,创建的是 buffer
gi: 水平分割创建文件的窗口,但是光标仍然留在 NERDTree
s: 垂直分割创建文件的窗口,创建的是 buffer
gs: 和 gi,go 类似
x: 收起当前打开的目录
X: 收起所有打开的目录
e: 以文件管理的方式打开选中的目录
D: 删除书签

ctrl+w+w 光标在左右窗口切换
ctrl+w+r 切换当前窗口左右布局
gT 切换到前一个tab
gt 切换到后一个tab
g t新打开一个tab

vim下的命令

:e file
# 可以再打开一个文件,并且此时vim里会显示出file文件的内容。
同时显示多个文件:
:sp //水平切分窗口
:vsplit //垂直切分窗口
二、在文件之间切换:
1.文件间切换
Ctrl+6 //两文件间的切换
:bn //下一个文件
:bp //上一个文件
:ls //列出打开的文件,带编号
:b1~n //切换至第n个文件
对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。
2.在窗格间切换的方法
Ctrl+w+方向键——切换到前/下/上/后一个窗格
Ctrl+w+h/j/k/l ——同上
Ctrl+ww——依次向后切换到下一个窗格中

Other:

如何在vim中使用跳转功能。

打开多个文件: 1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动

输入
:open file
可以再打开一个文件,并且此时vim里会显示出file文件的内容。

:e ../myFile.pl

1. vim 文档名 普通方式打开文档
2. vim +n 文档名 打开文档后,定位第n行
3. vim ,进入vim界面之后使用命令 :e 文档名 打开文档,此方式可以在编辑一个文档的同时打开另外一个文档

同时显示多个文件:

:split  简写 :sp
:vsplit 简写 :vsp
显示缓存 :ls

在文件之间切换: 1.文件间切换

Ctrl+6—下一个文件
:bn—下一个文件
:bp—上一个文件

对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。

对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。 2.在窗格间切换的方法

Ctrl+w+方向键——切换到前/下/上/后一个窗格
Ctrl+w+h/j/k/l ——同上
Ctrl+ww——依次向后切换到下一个窗格中

3.多文档编辑的命令如下

:n     编辑下一个文档。
:2n 编辑下两个文档。
:N 编辑上一个文档。注意,该方法只能用于同时打开多个文档。
:e 文档名 这是在进入vim后,不离开 vim 的情形下打开其他文档。
:e# 或 Ctrl+ˆ 编辑上一个文档,用于两个文档相互交换编辑时使用。?# 代表的是编辑前一次编辑的文档
:files 或 :buffers 或 :ls 可以列出目前 缓冲区 中的所有文档。加号 + 表示 缓冲区已经被修改过了。#代表上一次编辑的文档,%是目前正在编辑中的文档
:b 文档名或编号 移至该文档。
:f 或 Ctrl+g 显示当前正在编辑的文档名称。
:f 檔名 改变编辑中的文档名。(file)

多文件切换

1. 通过vim打开多个文件(可以通过ctags或者cscope)
2. ":ls"查看当前打开的buffer(文件)
3. ":b num"切换文件(其中num为buffer list中的编号)

   转载规则


《vim操作总结》 胡哲 采用 知识共享署名 4.0 国际许可协议 进行许可。