Linux中国
1.73K subscribers
777 photos
6.34K links
Linux 中国官方 Telegram 频道
Download Telegram
如何在 vi 中创建快捷键

那些常见编辑任务的快捷键可以使 Vi 编辑器更容易使用,更有效率。Media学习使用 vi 文本编辑器 确实得花点功夫,不过 vi 的老手们都知道,经过一小会儿的锻炼,就可以将基本的 vi 操作融汇贯通。我们都知道“肌肉记忆”,那么学习 vi 的过程可以称之为“手指记忆”。当你抓住了基础的操作窍门之后,你就可以定制化地配置 vi 的快捷键,从而让其处理的功能更为强大、流畅。我希望下面描述的技术可以加速您的协作、编程和数据操作。在开始之前,我想先感谢下 Chris Hermansen(是他雇佣我写了这篇文章)仔细地检查了我的另一篇关于使用 vi 增强版本 Vim 的文章。当然还有他那些我未采纳的建议。首先,我们来说明下面几个惯例设定。我会使用符号 <RET> 来代表按下回车,<SP> 代表按下空格键,CTRL-x 表示一起按下 Control 键和 x 键(x 可以是需要的某个键)。使用 map 命令来进行按键的映射。第一个例子是 write 命令,通常你之前保存使用这样的命令:
:w<RET>
虽然这里只有三个键,不过考虑到我用这个命令实在是太频繁了,我更想“一键”搞定它。在这里我选择逗号键,它不是标准的 vi 命令集的一部分。这样设置:
:map , :wCTRL-v<RET>
这里的 CTRL-v 事实上是对 <RET> 做了转义的操作,如果不加这个的话,默认 <RET> 会作为这条映射指令的结束信号,而非映射中的一个操作。 CTRL-v 后面所跟的操作会翻译为用户的实际操作,而非该按键平常的操作。在上面的映射中,右边的部分会在屏幕中显示为 :w^M,其中 ^ 字符就是指代 control,完整的意思就是 CTRL-m,表示就是系统中一行的结尾。目前来说,就很不错了。如果我编辑、创建了十二次文件,这个键位映射就可以省掉了 2*12 次按键。不过这里没有计算你建立这个键位映射所花费的 11 次按键(计算 CTRL-v 和 : 均为一次按键)。虽然这样已经省了很多次,但是每次打开 vi 都要重新建立这个映射也会觉得非常麻烦。幸运的是,这里可以将这些键位映射放到 vi 的启动配置文件中,让其在每次启动的时候自动读取:文件为 .exrc,对于 vim 是 .vimrc。只需要将这些文件放在你的用户根目录中即可,并在文件中每行写入一个键位映射,之后就会在每次启动 vi 生效直到你删除对应的配置。在继续说明 map 其他用法以及其他的缩写机制之前,这里在列举几个我常用提高文本处理效率的 map 设置:映射显示为:map X :xCTRL-v<RET>:x^M:map X ,:qCTRL-v<RET>,:q^M上面的 map 指令的意思是写入并关闭当前的编辑文件。其中 :x 是 vi 原本的命令,而下面的版本说明之前的 map 配置可以继续用作第二个 map 键位映射。映射显示为:map v :e<SP>:e上面的指令意思是在 vi 编辑器内部切换文件,使用这个时候,只需要按 v 并跟着输入文件名,之后按 <RET> 键。映射显示为:map CTRL-vCTRL-e :e<SP>#CTRL-v<RET>:e #^M# 在这里是 vi 中标准的符号,意思是最后使用的文件名。所以切换当前与上一个文件的方法就使用上面的映射。映射显示为map CTRL-vCTRL-r :!spell %>err &CTRL-v<RET>:!spell %>err&^M(注意:在两个例子中出现的第一个 CRTL-v 在某些 vi 的版本中是不需要的)其中,:! 用来运行一个外部的(非 vi 内部的)命令。在这个拼写检查的例子中,% 是 vi 中的符号用来指代目前的文件, > 用来重定向拼写检查中的输出到 err 文件中,之后跟上 & 说明该命令是一个后台运行的任务,这样可以保证在拼写检查的同时还可以进行编辑文件的工作。这里我可以键入 verr<RET>(使用我之前定义的快捷键 v 跟上 err),进入 spell 输出结果的文件,之后再输入 CTRL-e 来回到刚才编辑的文件中。这样我就可以在拼写检查之后,使用 CTRL-r 来查看检查的错误,再通过 CTRL-e 返回刚才编辑的文件。还用很多字符串输入的缩写,也使用了各种 map 命令,比如:
:map! CTRL-o \fI:map! CTRL-k \fP
这个映射允许你使用 CTRL-o 作为 groff 命令的缩写,从而让让接下来书写的单词有斜体的效果,并使用 CTRL-k 进行恢复。还有两个类似的映射:
:map! rh rhinoceros:map! hi hippopotamus
上面的也可以使用 ab 命令来替换,就像下面这样(如果想这么用的话,需要首先按顺序运行: 1、 unmap! rh,2、umap! hi):
:ab rh rhinoceros:ab hi hippopotamus
在上面 map! 的命令中,缩写会马上的展开成原有的单词,而在 ab 命令中,单词展开的操作会在输入了空格和标点之后才展开(不过在 Vim 和我的 vi 中,展开的形式与 map! 类似)。想要取消刚才设定的按键映射,可以对应的输入 :unmap、 unmap! 或 :unab。在我使用的 vi 版本中,比较好用的候选映射按键包括 g、K、q、 v、 V、 Z,控制字符包括:CTRL-a、CTRL-c、 CTRL-k、CTRL-n、CTRL-p、CTRL-x;还有一些其他的字符如 #、 *,当然你也可以使用那些已经在 vi 中有过定义但不经常使用的字符,比如本文选择 X 和 I,其中 X 表示删除左边的字符,并立刻左移当前字符。最后,下面的命令
:map<RET>:map!<RET>:ab
将会显示,目前所有的缩写和键位映射。希望上面的技巧能够更好地更高效地帮助你使用 vi。via: https://opensource.com/article/18/5/shortcuts-vi-text-editor作者:Dan Sonnenschein 选题:lujun9972 译者:sd886393 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media

via https://linux.cn/article-10074-1.html?utm_source=rss&utm_medium=rss
Linux 防火墙:关于 iptables 和 firewalld 的那些事

以下是如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则。Media

via https://linux.cn/article-10075-1.html
在 Linux 中安全且轻松地管理 Cron 定时任务

如果你在处理 Cron 定时任务的时候为了以防万一,可以尝试使用 Crontab UI,它是一个可以在类 Unix 操作系统上安全轻松管理 Cron 定时任务的 Web 页面工具。Media

via https://linux.cn/article-10077-1.html
如何在 Ubuntu Linux 中使用 RAR 文件

Ubuntu 自带的归档管理器却不支持提取 RAR 文件,也不允许创建 RAR 文件。Media

via https://linux.cn/article-10078-1.html
用于 Linux 桌面的 4 个扫描工具

使用这些开源软件之一驱动你的扫描仪来实现无纸化办公。Media

via https://linux.cn/article-10079-1.html
3 个用于数据科学的顶级 Python 库

使用这些库把 Python 变成一个科学数据分析和建模工具。Media

via https://linux.cn/article-10080-1.html
如何在 Ubuntu 18.04 上安装 Popcorn Time

这篇教程展示给你如何在 Ubuntu 和其他 Linux 发行版上安装 Popcorn Time,也会讨论一些 Popcorn Time 的便捷操作。Media

via https://linux.cn/article-10081-1.html
ScreenCloud:一个增强的截屏程序

ScreenCloud 是跨平台的程序,它提供轻松的屏幕截图功能和灵活的云备份选项管理。这包括使用你自己的 FTP 服务器。Media

via https://linux.cn/article-10083-1.html
在 Linux 中使用 Wondershaper 限制网络带宽

在本文当中,将会介绍 Wondershaper 这一个实用的命令行程序,这是我认为限制 Linux 系统 Internet 或本地网络带宽的最简单、最快捷的方式之一。Media

via https://linux.cn/article-10084-1.html
如何在 Linux 中配置基于密钥认证的 SSH

在基于密钥认证中,为了通过 SSH 通信,你需要生成 SSH 密钥对,并且为远程系统上传 SSH 公钥。Media

via https://linux.cn/article-10086-1.html
Linux 下如何创建 M3U 播放列表

关于如何在Linux终端中根据乱序文件创建M3U播放列表实现循序播放的小建议。Media

via https://linux.cn/article-10087-1.html
5 个很酷的音乐播放器

无论你有庞大的音乐库,还是小一些的,抑或根本没有,你都可以用到音乐播放器。这里有四个图形程序和一个基于终端的音乐播放器,可以让你挑选。Media

via https://linux.cn/article-10088-1.html
更好利用 tmux 会话的 4 个技巧

如果你已经开始使用 tmux 了,那么这里有一些技巧可以帮你更好地使用它。Media

via https://linux.cn/article-10089-1.html
在 React 条件渲染中使用三元表达式和 “&&”

React 组件可以通过多种方式决定渲染内容。你可以使用传统的 if 语句或 switch 语句。在本文中,我们将探讨一些替代方案。但要注意,如果你不小心,有些方案会带来自己的陷阱。Media

via https://linux.cn/article-10090-1.html
如何安装并使用 Wireshark

Wireshark 允许我们监控网络数据包直到其微观层面。Media

via https://linux.cn/article-10091-1.html
DevOps 实践指南

这些技巧或许对那些想要践行 DevOps 的系统运维和开发者能有所帮助。Media

via https://linux.cn/article-10092-1.html
从过时的 Windows 机器迁移到 Linux

这是一个当老旧的 Windows 机器退役时,决定迁移到 Linux 的故事。Media

via https://linux.cn/article-10093-1.html
Linux 开发的五大必备工具

Linux 上的开发工具如此之多,以至于会担心找不到恰好适合你需要的。Media

via https://linux.cn/article-10094-1.html
如何在 Linux 上使用网络配置工具 Netplan

netplan 是一个命令行工具,用于在某些 Linux 发行版上配置网络。Media

via https://linux.cn/article-10095-1.html
10 个 Linux 中方便的 Bash 别名

对 Bash 长命令使用压缩的版本来更有效率。Media

via https://linux.cn/article-10098-1.html