每日一Vim(12)ab与map命令
ab命令:
ab
命令可以将一长串字符用缩写来定义,这有点象Linux中的alias,比如Linux中的ll
命令就是ls -l
的别名,ab
的语法为:
:ab abbr phrase
abbr就是对phrase的简写,在insert 模式中,输入abbr,再按非字母字符(比如空格,点号等)Vim就自动把phrase插入到光标处位置。此情景一般用在频繁输入的字符中,通常建议abbr选择使用频率很低的字符,比如Eclipse常用的一个快捷键syso,你可以定义成如下:
:ab syso public static void main(String[] args)
这样一来,每次输入syso的时候,整个main方法就自动插入到文本行了。如果你就是想输入'syso'这个原生字符串,那么您可以用下面这个命令取消:
:unab syso
列出当前定义的缩写有哪些可以用命令:
:ab
map命令
上图是执行:map
命令显示的内容,我们暂且先不对图做说明,稍后再分析,map的功能比ab更强大,它不仅可以在insert 模式下定义宏(快捷键)而且可以normal,visual等模式下定义。其语法举例说明:(目标:在normal下用lv
选中光标所在行)
:map lv 0v$
解析:0代表光标移至行首,v就是visual模式(该模式下可以通过hjkl来选中文本),$代表行尾,这样一来,在normal模式输入lv
就能选中光标所在行了。
:map 列出所有已定义的映射命令
:unmap lv 取消lv映射的命令
:mapclear 清空所有映射
需要注意的是:
- 默认情况下,map命令是作用在normal模式下的
- 如果是想在virsual模式下新建某个命令的宏,可以使用:vmap,举例::vmap d <esc>dd就可以在virsual模式下把光标所在行删除。
<esc>
是纯粹的5个原始字符,意思是回到normal模式。 - 默认情况下,map是采用递归映射的,比如a映射成b,
:map a b
,然后c 又映射成了a,:map c a
,那么最终c也会自动映射成b,等同于:map c b
,您现在可以试一试a,b,c的效果都是光标向前移动一个单词的长度。如果要不想使用递归,那么就要用:noremap
- 现在你应该能看明白上图的内容了吧,第一列就是宏会在哪中模式下生效,第二列代表快捷键了,第三列就是真正的命令序列集合了。您可以注意一下最后一个命令:(Shift+Insert)就是前些天分享过的,代表在normal模式下粘贴系统剪切板中的内容。
实用例子:
:map <C-a> <Esc>ggVG 实现类似于Widnows下的Ctrl+a全选
:inoremap ( ()<esc>i 插入模式下输入'('后自动补全')',同理还可以实现'[','{'
更多的例子就要靠您的创造力和想象力的,如果您能把基本的命令学好了,这些命令组合在一起使用的话,威力无比。
ps:"+y
可以把光标所在行或选选中的字符copy到系统剪切板中。
转载请注明出处,谢谢合作。作者---zhijun
相关推荐
vim的常用操作,vim没有菜单,只有命令 插入模式 定位命令 4. 删除命令 5. 复制和剪切 6. 替代和取消 7.搜索与替换 6. 保存与退出 7. 导入命令执行结果. ‘:r ! 命令’ 导入文件。 ‘:r 文件’ 导入该文件到...
- :map key command_seq:定义一个快捷键来执行一系列命令。 - :unmap key:取消定义快捷键。 - :ab string1 string2:定义缩写。 9. 进阶编辑技巧: - > 和 增加或减少缩进。 - Ctrl+e, Ctrl+y, Ctrl+u, Ctrl+d:...
Vim是一款功能强大的文本编辑器,广泛应用于Unix、Linux及MAC OS等类Unix操作系统中。它有着不同于其他文本编辑器的操作方式,被许多程序员和系统管理员所推崇。Vim能够通过各种命令模式提高编辑效率,因此掌握其...
《Hacking Vim》是一本专注于提升 Vim 编辑器使用效率和技术深度的指南书籍。对于已经熟练掌握 Vim 基础操作(如 hjkl 导航、i 插入模式、yy 复制、dd 删除等)但尚未深入自定义 `.vimrc` 文件的用户来说,本书具有...
Vim是一款强大的文本编辑器,其高级用法能够极大地提高程序员和文本工作者的效率。以下是一些关于Vim高级命令的详细说明: 1. **启动Vim**: - `-R` 参数允许以只读模式打开文件,但在有权限的情况下仍可强制保存...
- **命令**: `:map key new_seq` - **作用**: 定义键盘映射,将一个键映射为一系列的命令。 #### 5. 设置与状态显示 - **命令**: `:set [all]` - **作用**: 显示所有设置的信息。 - **命令**: `:set nu` - **...
8. **缩写与自动补全**:`:ab`命令创建缩写,例如`:ab usa United States of America`。在文件中输入`usa`,就会自动扩展为`United States of America`。取消缩写用`:unabbreviate`,删除所有缩写用`:abclear`。 9....
- **记录与回放命令**:使用宏记录一系列命令,然后回放。 - **替换**:`:%s/old/new/g`全局替换,`:/pat/s//new/g`在匹配模式的行中替换。 - **命令范围**:`1,5s/old/new/g`在特定行范围内替换。 - **global命令**...
华为 HCNP(Huawei Certified Network Professional)是华为认证体系中的一个重要部分,专注于网络技术的深入学习与实践。H12-222 V10.02.IENP 是华为针对HCNP-R&S(Routing & Switching)IESN(Implementing ...
12. **自定义命令与映射** - `:ab abbreviation expanded`: 定义缩写,例如`:ab usa United States of America`。 - `:map key new_sequence`: 映射按键,例如`:map j k`将`j`键映射为`k`键。 13. **设置与状态...
- **find /etc -name "jiangwen" = locate**:说明locate与find命令的区别。 - **locate 实时性实时性**:locate依赖于数据库更新,而find则实时扫描文件系统。 - **updatedb**:用于更新locate数据库。 - **which、...