最近用emacs-evil写代码 我会在这里记录一些高效操作文本的方法
* | 代表光标所在的位置
1 一行内跳到某个字母
| if(ctx.type=="array"){...}
fa 光标会跳到第一个字母a上面
if(ctx.type=="a|rray"){
0 光标回到行首
| if(ctx.type=="array"){
ta 光标跳到第一个字母a的前面
if(ctx.type=="|array"){
Fa 和fa一样 不同的是向后查找
Ta 和ta一样 不同的是向后查找
2屏幕内光标跳转
'. 光标移动到上次编辑的地方
H 移动光标到屏幕上方
M 移动光标到屏幕中间 L 移动光标到屏幕下方3关键词自动完成
输入is 按c-n 回查找下方出现is开头的单词补全 不满意继续c-n c-p和c-n一样不同的是向上查找
4编程实用
- gd: 跳转到局部变量的定义处;
- gD: 跳转到全局变量的定义处,从当前文件开头开始搜索;
- g;: 上一个修改过的地方;
- g,: 下一个修改过的地方;
- [[: 跳转到上一个函数块开始,需要有单独一行的{。
- ]]: 跳转到下一个函数块开始,需要有单独一行的{。
- []: 跳转到上一个函数块结束,需要有单独一行的}。
- ][: 跳转到下一个函数块结束,需要有单独一行的}。
- [{: 跳转到当前块开始处;
- ]}: 跳转到当前块结束处;
- [/: 跳转到当前注释块开始处;
- ]/: 跳转到当前注释块结束处;
- %: 不仅能移动到匹配的(),{}或[]上,而且能在#if,#else, #endif之间跳跃。
下面的括号匹配对编程很实用的。
- ci', di', yi':修改、剪切或复制'之间的内容。
- ca', da', ya':修改、剪切或复制'之间的内容,包含'。
- ci", di", yi":修改、剪切或复制"之间的内容。
- ca", da", ya":修改、剪切或复制"之间的内容,包含"。
- ci(, di(, yi(:修改、剪切或复制()之间的内容。
- ca(, da(, ya(:修改、剪切或复制()之间的内容,包含()。
- ci[, di[, yi[:修改、剪切或复制[]之间的内容。
- ca[, da[, ya[:修改、剪切或复制[]之间的内容,包含[]。
- ci{, di{, yi{:修改、剪切或复制{}之间的内容。
- ca{, da{, ya{:修改、剪切或复制{}之间的内容,包含{}。
- ci<, di<, yi<:修改、剪切或复制<>之间的内容。
- ca<, da<, ya<:修改、剪切或复制<>之间的内容,包含<>。