用一些超酷的功能使 Vim 变得更强大 | Linux 中国
2018-02-21 00:00
561 查看
我认为,Vim 应该从一开始就以我们想要的方式运作,而其它编辑器让我们按照已经设计好的方式工作,实际上不是我们想要的工作方式。-- Linuxandubuntu
本文导航◈ 我的感想07%◈ 利用 Vim 进行程序设计13%◈ 执行代码13%◈ Vim 方式23%◈ 利用 VimScript 创建函数33%◈ 将 ctrl+r 映射为运行 C++ 代码48%◈ 最终结果53%◈ 进一步提高66%◈ 总结86%编译自 | http://www.linuxandubuntu.com/home/making-vim-even-more-awesome-with-these-cool-features
作者 | Linuxandubuntu
译者 | datastructVim 是每个 Linux 发行版]中不可或缺的一部分,也是 Linux 用户最常用的工具(当然是基于终端的)。至少,这个说法对我来说是成立的。人们可能会在利用什么工具进行程序设计更好方面产生争议,的确 Vim 可能不是一个好的选择,因为有很多不同的 IDE 或其它类似于 Sublime Text 3,Atom 等使程序设计变得更加容易的成熟的文本编辑器。我的感想但我认为,Vim 应该从一开始就以我们想要的方式运作,而其它编辑器让我们按照已经设计好的方式工作,实际上不是我们想要的工作方式。我不会过多地谈论其它编辑器,因为我没有过多地使用过它们(我对 Vim 情有独钟)。不管怎样,让我们用 Vim 来做一些事情吧,它完全可以胜任。利用 Vim 进行程序设计执行代码考虑一个场景,当我们使用 Vim 设计 C++ 代码并需要编译和运行它时,该怎么做呢。(a). 我们通过
Ctrl + Z返回到终端,或者利用
:wq保存并退出。(b). 但是任务还没有结束,接下来需要在终端上输入类似于
g++ fileName.cxx的命令进行编译。(c). 接下来需要键入
./a.out执行它。为了让我们的 C++ 代码在 shell 中运行,需要做很多事情。但这似乎并不是利用 Vim 操作的方法( Vim 总是倾向于把几乎所有操作方法利用一两个按键实现)。那么,做这些事情的 Vim 的方式究竟是什么?Vim 方式Vim 不仅仅是一个文本编辑器,它是一种编辑文本的编程语言。这种帮助我们扩展 Vim 功能的编程语言是 “VimScript”(LCTT 译注: Vim 脚本)。因此,在 VimScript 的帮助下,我们可以只需一个按键轻松地将编译和运行代码的任务自动化。
create functions in vim .vimrc以上是在我的
.vimrc配置文件里创建的一个名为
CPP()函数的片段。利用 VimScript 创建函数在 VimScript 中创建函数的语法非常简单。它以关键字
func开头,然后是函数名(在 VimScript 中函数名必须以大写字母开头,否则 Vim 将提示错误)。在函数的结尾用关键词
endfunc。在函数的主体中,可以看到
exec语句,无论您在
ex 4000 ec关键字之后写什么,都会在 Vim 的命令模式上执行(记住,就是在 Vim 窗口的底部以
:开始的命令)。现在,传递给
exec的字符串是(LCTT 译注:
:!clear && g++ % && ./a.out) -
vim functions commands & symbols当这个函数被调用时,它首先清除终端屏幕,因此只能看到输出,接着执行
g++处理你工作的文件,然后运行由前一步编译而形成的
a.out文件。将 ctrl+r 映射为运行 C++ 代码我将语句
call CPP()映射到键组合
Ctrl+r,以便我现在可以按
Ctrl+r来执行我的 C++ 代码,无需手动输入
:call CPP(),然后按
Enter键。最终结果我们终于找到了 Vim 方式的操作方法。现在,你只需按一个(组合)键,你编写的 C++ 代码就输出在你的屏幕上,你不需要键入所有冗长的命令了。这也节省了你的时间。我们也可以为其他语言实现这类功能。
create function in vim for python对于Python:您可以按下
Ctrl+e解释执行您的代码。
create function in vim for java对于Java:您现在可以按下
Ctrl+j,它将首先编译您的 Java 代码,然后执行您的 Java 类文件并显示输出。进一步提高所以,这就是如何在 Vim 中操作的方法。现在,我们来看看如何在 Vim 中实现所有这些。我们可以直接在 Vim 中使用这些代码片段,而另一种方法是使用 Vim 中的自动命令
autocmd。
autocmd的优点是这些命令无需用户调用,它们在用户所提供的任何特定条件下自动执行。我想用 autocmd 实现这个,而不是对每种语言使用不同的映射,执行不同程序设计语言编译出的代码。
autocmd in vimrc在这里做的是,为所有的定义了执行相应文件类型代码的函数编写了自动命令。会发生什么?当我打开任何上述提到的文件类型的缓冲区, Vim 会自动将
Ctrl + r映射到函数调用,而
<CR>表示回车键,这样就不需要每完成一个独立的任务就按一次回车键了。为了实现这个功能,您只需将函数片段添加到
.vimrc文件中,然后将所有这些
autocmd也一并添加进去。这样,当您下一次打开 Vim 时,Vim 将拥有所有相应的功能来执行所有具有相同绑定键的代码。总结就这些了。希望这些能让你更爱 Vim 。我目前正在探究 Vim 中的一些内容,正阅读文档,补充
.vimrc文件,当我研究出一些成果后我会再次与你分享。如果你想看一下我现在的
.vimrc文件,这是我的 Github 账户的链接: MyVimrc[1]。期待你的好评。via: http://www.linuxandubuntu.com/home/making-vim-even-more-awesome-with-these-cool-features作者:LINUXANDUBUNTU[3] 译者:stevenzdg988 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出LCTT 译者
datastruct(stevenzdg988) ? ? ?共计翻译:10 篇贡献时间:211 天
推荐文章< 左右滑动查看相关文章 >
点击图片、输入文章 ID 或识别二维码直达
原文链接请访问“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。
相关文章推荐
- 用一些超酷的功能使 Vim 变得更强大
- 用一些超酷的功能使 Vim 变得更强大
- linux添加vim编辑器和一些用法
- 【linux】vim的一些快捷键
- linux的shell,第一次写,只是简单的一些功能
- VIM 一些功能
- 关于vim的一些使用以及Dos文件到Linux、Mac下问题
- linux下用vim实现ultraEdit的功能
- 3 个可以替代 Emacs 和 Vim 的文本编辑器 | Linux 中国
- 中国Linux界的一些牛人(部分)
- Linux 软件安装使用(11) vim的一些小技巧
- 取消Linux下VIM和gedit的自动备份功能
- Linux 对VIM的一些格式设置
- linux 中 vim的资源文件的配置(一些关于VI)
- Linux——代码编辑器vim的功能
- linux--vim的一些简单便捷的操作
- Linux系统下关闭vim和gEdit自动备份功能
- Linux 快速配置 VIM 实现语法高亮 自动补全 自动缩进以及文件管理等功能
- 如何在 Linux 上使用 Vundle 管理 Vim 插件 | Linux 中国