在本文中,我们将构建一些我们自己的键绑定,这些键绑定将释放 vim 的真正力量,不仅是作为文本编辑器,而且是更大的东西。 我们将通过 g 命令进行基本导航,用于编辑 HTML 文件的键绑定以及直接从 vim 运行外部命令以编译保存和运行我们的代码。 我们将把这篇文章分成几个子主题,请随意跳到相关部分。 如果你还没有学习 vim 的基础知识,这里有一个很棒的指南。
使用“g”导航
如果您是那些在换行时无法使用 j 和 k 键进入 vim 中的下一行的人之一,那么通过 g 键导航是最终的解决方案。 只需在任何方向键之前按 g 键,即使有换行,您也可以移动到下一行! 移动到行首按 g0,类似地移动到行尾按 g$。
另一个快速技巧是通过 g 键大写和取消大写。 首先在可视模式下选择任何单词,然后按 gu 将整个单词取消大写,类似于将整个单词大写按 gU。 我们知道 ~ 字符会反转大写,但在典型的用例中,我们通常希望整个单词大写或不大写,这就是解决方案。
g 键的另一个用途是在正常模式下先按 g 然后按 Ctrl+g 这将为您提供当前打开文件的字数!
自定义键绑定以快速编辑 HTML 文件
首先,我们将添加一个键绑定以快速跳转到我们将用一系列特殊字符标记的位置,这将大大提高移动性和生产力。 所以在这里,我们将设置一个键绑定,这样每当我们连续按两次空格键时,光标就会将我们带到预先放置这组特殊 () 字符集的位置,并将我们在插入模式下。 为此,请转到您的 vimrc 文件并添加以下代码块:
nnoremap <Space><Space> <Esc>/<++><Enter>"_c4l
现在,我们将添加一些用于 HTML 编辑的键绑定。 首先,让我们为强调标签制作一个键绑定。
autocmd Filetype html inoremap ;i <em></em><Space><++><Esc>FeT>i
这将创建一个强调标签并将光标放在标签之间,它还将在标签末尾生成一组特殊的字符,以便我们可以快速点击转义键并按两次空格键跳到下一部分代码。
请记住,此键绑定仅适用于插入模式,文件类型插件也应打开,其余键绑定也类似地工作。 对于粗体文本,我们有以下命令:
autocmd Filetype html inoremap ;b <b></b><Space><++><Esc>FbT>i
对于段落标签,我们有:
autocmd Filetype html inoremap ;p <p></p><Enter><Enter><++><Esc>2ki
这将在段落之间放置一个空行,以便让程序员清楚地看到代码在 Web 浏览器中呈现后的外观。
Save在 Vim 中编译和运行你的代码
使用这组指令和键绑定,我们将能够在 Vim 内部保存编译和运行我们的代码。 就像大多数代码编辑器一样,但没有臃肿! 在这里,我们将使用单声道进行编译,您可以使用适用于您的语言的任何编译器。 就个人而言,我使用相同的设置来编译和渲染我的 LaTex 文件(我只是将编译器替换为 pdflatex 并将文件扩展名替换为 .tex)。
请记住,开发人员通常使用多种语言工作,我们没有全局设置这些键绑定,建议根据需要进行变形和更改,并通过 vim 命令界面为您将要处理的当前文件输入映射。
要编译和运行名为 Program.cs 的文件,我们将使用以下键绑定:
map ;c :!clear && mcs Program.cs && mono Program.exe<CR>
现在,我们当然可以通过先保存文件然后编译并运行它来优化这个键绑定,这样我们就不会得到旧文件的输出:
map ;c :w<CR>:!clear && mcs Program.cs && mono Program.exe<CR>
要运行多个文件(具有相同的扩展名),我们可以使用以下配置:
map ;c :w<CR>:!clear && mcs % && mono %:r.exe<CR>
这里 % 表示缓冲区中的当前文件, :r 表示删除文件的扩展名,因为我们将运行我们生成的 .exe 文件。
将 Rsync 与 Vim 集成
作为开发人员,您可能会定期在单独的 PC 上备份文件。 在这里,我们将设置一个键绑定,将我们的文件备份在单独的 PC 中(在我们的 LAN 网络中)。 我会将我的 vimwiki 文件夹备份到始终连接到我家 Wifi 的笔记本电脑上。 您可以为您的特定用例设置自己的文件夹。
首先,我们需要知道存储 PC 的 IP 地址,为此在 Linux 中使用 ifconfig 命令查找 IP 地址,其形式为:
192.168.29.XX
现在通过你的包管理器安装 rsync,对于基于 Ubuntu 和 Debian 的系统,这将是:
sudo apt install rsync
现在您已经准备好设置,在您的 vimrc 文件中输入以下代码块:
map <C-r> :!rsync -avz /path/to/your/folder/or/file [email protected]:~/path/to/destination/folder/
现在,每当您按 Ctrl+r 时,您都需要在存储 PC 中传递 ssh 会话的密码,并且 rsync 会将所有更改写入您的存储 PC。
概括
现在您已经了解了使用 Vim 可以做的所有事情,现在是时候真正深入了解您自己的配置和键绑定了。 随意在这个网站上搜索 vim 文章! 谢谢阅读。
参考:
- Vim 教程 – 开始使用 VIM 所需的一切
- Nano vs VIM 编辑器——nano 和 vim 编辑器有什么区别?