Vim 系列教程目录:git
因为 Vim 的编辑方式实在是很优秀, 而且在程序员普及率比较高(大误...), 因此不少编辑器/IDE 也都有模仿 Vim 的插件. 我如今的主力开发工具是 VSCode/IDE + Vim 插件, 既能使用 Vim 的编辑功能, 也能使用 IDE 强大的代码提示, 重构, 调试等功能.程序员
下面列举几个经常使用编辑器/IDE 的 Vim 插件.github
VSCode 中可使用 VSCodeVim, 在 VS Code 插件市场里安装便可.json
安装好以后须要作一些配置:vim
settings.json
中:/* ---- Vim start ---- */
// 高亮搜索
"vim.hlsearch": true,
// 行宽
"vim.textwidth": 120,
// leader key
"vim.leader": ";",
// 不使用 Vim Ctrl 相关的快捷键
"vim.useCtrlKeys": false,
// 使用系统的剪切板
"vim.useSystemClipboard": true,
"vim.insertModeKeyBindings": [
{
"before": [
"k",
"k"
],
"after": [
"<Esc>"
]
}
],
"vim.visualModeKeyBindingsNonRecursive": [
// 可视模式粘贴时不替换寄存器
{
"before": [
"p",
],
"after": [
"p",
"g",
"v",
"y"
]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"leader",
"w"
],
"after": [],
"commands": [
{
"command": "workbench.action.files.save",
"args": []
}
]
},
{
"before": [":"],
"commands": [
"workbench.action.showCommands",
]
},
{
"before": ["k"],
"after": ["g", "k"]
},
{
"before": ["j"],
"after": ["g", "j"]
}
],
/* ---- Vim end ---- */
复制代码
keybindings.json
中进行配置:/* ---- Vim begin ---- */
{
"key": "ctrl+h",
"command": "cursorLeft",
"when": "editorTextFocus"
},
{
"key": "ctrl+l",
"command": "cursorRight",
"when": "editorTextFocus"
},
{
"key": "ctrl+j",
"command": "cursorDown",
"when": "editorTextFocus"
},
{
"key": "ctrl+j",
"command": "selectNextSuggestion",
"when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
},
{
"key": "ctrl+j",
"command": "showNextParameterHint",
"when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
},
{
"key": "ctrl+k",
"command": "cursorUp",
"when": "editorTextFocus"
},
{
"key": "ctrl+k",
"command": "selectPrevSuggestion",
"when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
},
{
"key": "ctrl+k",
"command": "showPrevParameterHint",
"when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
},
/* ---- Vim end ---- */
复制代码
JetBrains 全家桶可使用 IdeaVim 这个插件, JetBrains 全家桶里的任何一款 IDE 里均可以安装这个插件.bash
IdeaVim 有本身的 vimrc 文件, 名为: .ideavimrc
, 须要放在用户目录下, 其中的配置大部分都是和 Vim 一致的, 具体参考: github.com/JetBrains/i…, 这里给我一份我经常使用的配置:app
" ---------------- " 高亮显示匹配的括号
set showmatch
" 高亮显示搜索到的关键字 set hlsearch " 即时搜索
set incsearch
" 智能大小写敏感, 只要有一个字母大写, 就大小写敏感, 不然不敏感 set ignorecase smartcase " ----------------
" ---------------- " 将 kk 映射成 Esc
inoremap kk <Esc>
" 防止一次跳多行 nnoremap k gk nnoremap j gj " 在可视模式下使用p粘贴时不替换寄存器内容
vnoremap p "_dP " 将 leader 配置为 ;
let mapleader=";"
" 按 <leader>w 保存文件 nnoremap <leader>w :w<CR> " 可视模式下按 <leader>y 将内容写入系统寄存器
vnoremap <leader>y "+y " 按 <leader>p 将系统寄存器中的内容粘贴出来
nnoremap <leader>p "+p " ----------------
复制代码
除此以外, 在 IDE 中, 将 left, down, up, right 映射成 Ctrl-h/j/k/l, 这样在插入模式下也能够移动了.eclipse
另外注意: 在 IDE 中, 若是使用的 IDE 快捷键和 Vim 快捷键有冲突, IDE 会提示使用谁的, 自行选择便可. 也可在 IDE 设置中进行统一设置.编辑器
在 Eclipse 中, 可使用 vrapper, 经过 Eclipse Marketplace 安装便可, 若是不行的话, 到其官网上下载, 手动安装.ide
vrapper 也有本身的 vimrc 文件: _vrapperrc
, 一样须要放在用户目录下, 配置方式参照官方文档: vrapper.sourceforge.net/documentati…
个人经常使用配置:
inoremap kk <Esc>
let mapleader=";"
nmap <leader>w :w<CR>
vnoremap p "_dP " 可视模式下按 <leader>y 将内容写入系统寄存器
vnoremap <leader>y "+y " 按 <leader>p 将系统寄存器中的内容粘贴出来
nnoremap <leader>p "+p 复制代码
一样的, 在 Eclipse 中, 把 previous column, down, next column, up 映射成 Ctrl-h/j/k/l 便可.
Vim 系列的文章到此就结束了, 你可能会说: 你还没讲怎么使用 Vim 进行 C/C++/Java/Python/Web 开发呢?
不吹不黑, Vim 确实很优秀, 可是在当今的环境下, 彻底使用 Vim 做为开发工具不太现实, 即便是我如今使用 Vim, 更多的是使用它的编辑功能, 开发的话, 更依赖别的 IDE. 把 Vim 打形成 IDE 实在太麻烦, 并且还不必定有其余 IDE 好用. 学会 Vim 的基本使用, 在其余 IDE 中装上 Vim 插件, 也能够用的很舒服. 而 Vim 自己, 我更愿意把它看成一个文本编辑器, 平时用它写写笔记, 看看 log, 改改配置.
有时候我会想, 上古时期的程序员使用 Vim 编写出了庞大的软件世界, 那真是一个英雄辈出的年代, Vim 既是他们手中的神兵利器, 也体现了那个时代程序员的智慧(Emacs: 我不配拥有姓名吗?).
可是时代在前进, 即便 Vim 是神器, 在某些方面, 终究会被新的工具超越, 这不是什么悲哀的事情, 对于咱们程序员来讲, 反而是件好事, 咱们应该接受新事物. 反过来讲, Vim 的一些思想和用法依然是很是优秀的, 且对于用惯了普通编辑器的人来讲, Vim 就是新事物, 值得承认和学习. 因此我但愿你们能去了解它, 尝试使用它, 相信它能提高你的效率, 给你带来帮助.