作为Linux下老牌编辑器vim发展至今已有30个年头了,期间各种编辑器兴衰更替,唯独vim做到了长盛不衰.在服务器上vim绝对是一个必备的技能.vim支持纯的键盘操作,能够极大地提高编辑的效率.但是vim对待新手并不友好,操作命令多,学习曲线陡,将很多非服务器端开发者拒之门外.
模式
- normal模式是vim强大的编辑能力来源,在上面可以通过hjkl进行光标移动,normal模式命令往往需要一个操作符结尾,例如"dd"删除当前行,第二个"d"也可以替换成移动命令j表示删除当前行和下一行.
- 插入模式,在这个模式中大多数的按键都会向文本缓冲区插入文本,ESC键可以回到普通模式.
- 视图模式,移动命令可以扩大高亮文本区域,命令会被执行到这片高亮文本区域上,vim的"text object"也能像移动命令一样用在这个模式上
插入模式小技巧
在vim中可以通过a/A/i/I/O/O进入插入模式,gi能够快速的跳转到上一次编辑的地方并进入插入模式
快速纠错
快速移动
单词间移动
小写字母指的是以非空白符分割的单词,大写字母指的是以空白符分割的单词
行中移动
增删改查
常用的命令有r(replace),c(change),s(substitue)
搜索替换
多文件模式
Buffer间切换
窗口
- sp水平分割,vs垂直分割
- ctrl+w+[w|h|j|k|l]进行循环,上下左右的窗口切换
- e在当前窗口打开一个新的Buffer
text object
[number] <comman> [textobject]
number表示次数 comman是命令例如d,c,y textobject表示文本对象例如w,s,p
复制粘贴与寄存器
- Insert模式粘贴,:set paste可以解决代码缩进错乱问题
- 默认的删除粘贴会将内容放到"无名寄存器"
- 通过"{register}前缀可以指定寄存器,a-z每一个都可以作为一个寄存器,0是复制专用寄存器
- "+前缀可以使用系统剪贴板,如果vim支持系统剪贴板即:echo has(‘clipboard’)输出为1
宏操作
- 宏的使用分为录制和回放,q录制q结束录制
- q{register}选择要保存的寄存器,把录制命令保存其中
- @{register}回放寄存器中保存的一系列命令
- visual模式选择多行,通过命令模式:’<,’>normal @a对多行进行回放操作
补全
映射
- nmap/vmap/imap分别在normal/visual/insert模式下分别有效
- nnoremap/vnoremap/inoremap分别表示normal/visual/insert模式下的非递归映射
插件
插件管理器
安装vim-plug插件管理器,在.vimrc文件的call plug#begin('~/.vim/plugged')
与call plug#end()
之间写入想要安装的插件脚本Plug 'the plugin you want to install'
保存和重载.vimrc后在命令行模式下执行:PlugInstall安装
界面美化
好看的界面赏心悦目,保持愉快的心情
效率工具
- 显示目录结构nerdtree
- 文件模糊搜索ctrlp.vim,fzf.vim
- 光标快速定位vim-easymotion
- 括号引号的自动配对auto-pairs
- 成对编辑vim-surround
- 搜索替换far.vim
- 快速注释vim-commentary
- 自动补全coc.nvim
- 单词高亮vim-interestingwords
Vim IDE
插件集中营
VimAwesome是源自GitHub,Vim.org和用户提交的Vim插件的目录。插件使用数据是从GitHub上的dotfiles repos中提取的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。