8. Moving Around in Vim: Dance Steps
Words and WORDS
Words 是被标点分离的词,WORDS是含标点的字符。
如: http://I.am.a.frog.com
是6个Word,是1个WORD
Inner and All
文本对象通常被特定字符包围:WORD被空白符包围;word被非字符包围;句子被句号或行结尾包围。
Who is John Galt?
鼠标在Galt
词上,则diw
删除该词,句子被修改为Who is John ?
,iw
意为inner of word
;若ciw
则替换该词。
若用a
,则daw
删除该词及其两边空白字符,句子被修改为Who is John?
。
“Hello there! (He| lied)”. Ted was always cheerful.
da(
删除括号中内容及括号变为:
“Hello there! |”. Ted was always cheerful.
闭合字符 |
含义 |
{ |
圆括号之间内容 |
[ |
方括号之间内容 |
< |
尖括号之间内容 |
t |
XML或HTML标签之间内容 |
Move by Counting
5w
代表向右移动5个词,6j
代表向下移动6行。
- 但重复数过多时,不如重复操作。
(Book)marks
vim标签分为两类:小写标签和大写标签。小写标签为文件内指向,大写标签为文件件指向。
m
+ [字母]:在正常模式下操作,设定一个以字母为名字的标签。
- ` + [字母] : 跳至以字母为名的标签处。
- ’ + [字母]:跳至以字母为名的标签外行首。
返回
wall-e
11
10. Plugins
插件是什么
插件即一个函数、快捷键、脚本集合,使用vim更加好用。
手工安装
- 下载插件(.zip文件)
- 解压文件并拷贝到
$HOME/.vim
文件夹
- 重启vim
简易安装
Nate的偏好插件
额外找的插件
返回
wall-e
12
11. Operators: Moving and Changing at the Same Time
一个vim命令包含:
根据不同场景,以上三项均是可选。
4j
数字+移动
4p
数字+操作
editing by motion
场景
输入以下代码:
grunt.loadNpmTasks('grunt-contrib-jade');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
返回
wall-e
15
14. Text Origami. :h folding
:set foldmethod=indent ”按同级内缩折叠
:set foldmethod=syntax “按语法规则折叠
zc
:折叠
zo
:打开折叠
注:vim没有针对python语法的折叠功能,需要安装插件,本人安装的是SimpylFold。
只有当以vim为主要开发工具时,才涉及到本节详细命令。故暂略去更多相关命令。
返回
wall-e
18
17. Doing Things at Vim Speed
解释了相对于其它编辑器,vim胜出的原因在于:其将大部分操作限制在常用键区域完成。
返回
wall-e
19
18. Mapping Keys
All the Key map Commands
- nmap: 正常模式下映射
- vmap: 可视模式下映射
- imap: 插入模式下映射
示例:
nmap ea 将e 映射为 ea,移至词尾并进入插入模式
Take me to your Key!
设置新的引导键:
let mapleader=","
引导键+e 定义新功能:
nmap <Leader>e ea
返回
wall-e
20
19. Fancy Insert Mode Tricks
在插入模式中,有时需要在不离开插入模式的情况下进行文本操作。这样可以提高编辑效率。
命令 |
结果 |
<ctrl> w |
删除鼠标之前的词 |
<ctrl> u |
删除鼠标之前的行 |
<ctrl> t |
增加行缩进 |
<ctrl> d |
减少行缩进 |
<ctrl> n |
找到下一个补全建议 |
<ctrl> x |
|
<ctrl> r |
插入寄取器内容,跟上一个寄取器名称 |
补全
vim会描扫已输入的词,当你键入 <ctrl> n
时vim会提示可能的匹配供选择。
返回