Vim 日常使用 技巧总结
2018-05-31 18:16
405 查看
记录的比较乱,仅仅用于熟悉使用,如能给您带来一点点参考价值,这也许就是这个总结的意义所在了。
关于 Vim 的学习可以参考以下经典教程
VIM - 主帮助文件
鸟哥的 Linux 私房菜
Vim实用技巧(第2版)
这里我大多会把阅读 Vim 实用技巧的案例整理下,但这里绝对没有侵犯原著版权的意思,望悉知。
另外,这里有必要说明的一点问题就是,好多同学说,现在这么多大型 IDE 对各种语言支持的都那么好了,还有必要学习这个“老古董”么?我们可以回顾下 vi 或者 vim 的一些使用场景。
一般 unix、linux 环境必备文本编辑工具
个人对 vim 定制使之适应自己所从事行业
现在各大 IDE 都有对应 vim mode 编辑模式
暂时就想到这么多,有其他的再补充
我们可以对上述几种情况做上下简单的分析。
第一种情况,这是使用unix,linux 服务器环境编辑自带编辑工具,理所当然学握好 vi 编辑技巧是很重要的。
第二种,这个对于一个已经熟悉掌握 vi 编辑技巧的人来说,有一个自己定制的 vim ,编辑开发起来我想也是得心应手了。
第三种,这个我个人认为更适合那些不太熟悉 vi 编辑技巧并且平时开发工作环境在windows操作系统环境,IDE 提供的对个人所从事的编辑语言的支持已经很好,但平时我们免不了点击更多的鼠标来操作,这样我们可以使用 IDE 提供的 vim mode 下的插件来解决这些“多余”的鼠标操作,使我们的开发效率最大化。
当然,最终的选择权还是在你自己心中?不是么?对于我个人来说保持学习是一个我认为值得坚持的好习惯。
一切华丽的根本都是丛基础开始,所以打好基础是重中之重。
参见 :h operator
gU 也是操作符 参见 :h gU
这里的{char} 或者 pattern 可以是我们手动输入的内容,也可以是我们复制到寄存器中的内容,比如我们用下面的搜索模式。
选区操作可以结合 h/j/k/l 和 w/b/e/ge 等命令来操作,如果选区选择有误可按 o 来重新选择选区活动端。
关于 Vim 的学习可以参考以下经典教程
VIM - 主帮助文件
鸟哥的 Linux 私房菜
Vim实用技巧(第2版)
这里我大多会把阅读 Vim 实用技巧的案例整理下,但这里绝对没有侵犯原著版权的意思,望悉知。
另外,这里有必要说明的一点问题就是,好多同学说,现在这么多大型 IDE 对各种语言支持的都那么好了,还有必要学习这个“老古董”么?我们可以回顾下 vi 或者 vim 的一些使用场景。
一般 unix、linux 环境必备文本编辑工具
个人对 vim 定制使之适应自己所从事行业
现在各大 IDE 都有对应 vim mode 编辑模式
暂时就想到这么多,有其他的再补充
我们可以对上述几种情况做上下简单的分析。
第一种情况,这是使用unix,linux 服务器环境编辑自带编辑工具,理所当然学握好 vi 编辑技巧是很重要的。
第二种,这个对于一个已经熟悉掌握 vi 编辑技巧的人来说,有一个自己定制的 vim ,编辑开发起来我想也是得心应手了。
第三种,这个我个人认为更适合那些不太熟悉 vi 编辑技巧并且平时开发工作环境在windows操作系统环境,IDE 提供的对个人所从事的编辑语言的支持已经很好,但平时我们免不了点击更多的鼠标来操作,这样我们可以使用 IDE 提供的 vim mode 下的插件来解决这些“多余”的鼠标操作,使我们的开发效率最大化。
当然,最终的选择权还是在你自己心中?不是么?对于我个人来说保持学习是一个我认为值得坚持的好习惯。
一切华丽的根本都是丛基础开始,所以打好基础是重中之重。
-- NORMAL -- 模式
操作 | 用途 | 说明 |
---|---|---|
<Esc> | 返回 normal 模式 | |
<C - [> | 返回normal 模式 | |
. | 重复上次修改 | |
x | 删除光标所在字符 | 如执行完 x 删除操作,按 . 再次执行 x 操作 |
dd | 删除当前行 | |
>G | 增加丛当前行到文档末尾处的缩进层级 | 参见:practical+vim 第1章 技巧1 |
>> | 增加当前行缩进 | |
$ | 移动光标到行尾 | |
i | 在光标所在字符前开始插入 | |
a | 在光标所在字符后开始插入 | |
$a;<Esc> | 在行尾添加分号 | |
0 | 移动光标到行首,空格也算 | |
<S-^> | 移动光标到当前行,行首,不包含空格 | |
b | 移动光标到当前单词首部 | |
:n | 跳转到指定的第 n 行 | |
ctrl+i | 跳转到跳转表里第 N 个较新的项目 | 简单来说就是往你编辑过的地方回跳 |
ctrl+o | 跳转到跳转表里第 N 个较旧的项目 | 简单来说就是一直向你最近编辑的位置跳转 |
f{char} | 查找下一处指定字符出现的位置 | 参见 :h f |
; | ; 命令会重复查找上次 f 命令所查找的字符 | 参见 practical+vim 第1章 技巧3 |
* | 匹配当前光标所在单词 | 将光标移动到单词上,按 * 键,光标跳转到下一匹配单词并且高亮所有单词匹配项 |
:%s/search/replacement/g | 全局替换 | |
<CR> | 另起一行,依然是normal mode | |
{start} db x | 反向删除单词 | 假设光标在单词最后位置 |
{start} b dw | 正向删除单词 | 先移动光标到单词开始位置,然后整个删除单词 |
d2w | 丛当前光标向后删除两个单词,包含当前字符 | |
2dw | 丛当前光标向后删除两个单词,包含当前字符 | |
dw | 丛当前光标向后删除单个单词 | 可以结合 . 来使用 |
{start} d aw | 删除整个单词 delete a word | text object 参见 :h aw |
[count]<C-a> | 对数字执行[count]次加操作 | 如果光标没有在数字上,则正向查找数字 |
[count]<C-x> | 对数字执行[count]次减操作 | 如果光标没有在数字上,则正向查找数字 |
<C-v> | 进入 Visual Block 模式 | |
h | 向左移动光标 | |
j | 向下移动光标 | |
k | 向上移动光标 | |
l | 向右移动光标 | |
zz | 将当前光标所在行重新定位到屏幕中间位置 | |
<C-f> | 向下滚动整屏 | |
<C-b> | 向上滚动整屏 | |
<C-d> | 向下滚动半屏 | |
<C-u> | 向上滚动半屏 | |
<S-a> | Visual Block 模式下在光标前面位置插入内容 | |
<S-i> | Visual Block 模式下在光标后面位置插入内容 | |
v | 进入Visual 模式 | 可以用这个实现, h j k l,选中文本,y复制到寄存器,p粘贴文本 |
<C-r>[操作符] | 寄存器操作 | 如 <C-r>p 会粘贴我们寄存器是复制的文本信息 |
<C-r> | 反撤消 | |
viw | 选中当前单词 |
按单词移动
相信你已经习惯了h,j,k,l的左下上右移动光标,但是如果在一行中这么多次按hjkl也是很手疼的一件事儿。命令 | 光标动作 |
---|---|
w | 正向移动到下一单词的开头 |
b | 反向移动到当前单词/上一单词的开头 |
e | 正向移动当前单词/下一单词的结尾 |
ge | 反向移动到上一单词的结尾 |
操作符 + 动作命令 = 操作
操作符 | 用途 |
---|---|
c | 修改 |
d | 删除 |
y | 复制到寄存器 |
g~ | 反转大小写 |
gu | 转换为小写 |
gU | 转换为大写 |
> | 增加缩进 |
< | 减小缩进 |
= | 自动缩进 |
! | 使用外部程序过滤{motion}所跨越的行 |
gU 也是操作符 参见 :h gU
操作 | 用途 | 说明 |
---|---|---|
gUaw | 把当前单词转换成大写形式 | |
gUap | 把整段文字转换为大写 | |
gUgU | 将当前行转换为大写 | |
gUU | 将当前行转换为大写 | |
dap | 删除整个段落 |
复合命令(参见 practical+vim 第1章 技巧2)
操作 | 用途 | 说明(等效长命令) |
---|---|---|
A | 移动当前行光标至行尾并进入插入模式 | $a |
C | 修改当前行上光标后面的部分,进入插入模式 | c$ |
s | 删除光标所在字符并开始插入 | cl |
S | 删除光标所在行并开始插入 | ^C |
I | 在光标所在行的行首开始插入 如果行首有空格则在空格之后插入 | ^i |
o | 在光标所在行的下面另起一新行插入 | A<CR> |
O | 在光标所在行的上面另起一行开始插入 | ko |
可重复操作及回退(参见 practical+vim 第1章 技巧4)
目的 | 操作 | 重复 | 回退 |
---|---|---|---|
做出一个修改 | {edut} | . | u |
在行内查找下一指定字符 | f{char}/t{char} | ; | , |
在行内查找上一指定字符 | F{char}/T{char} | ; | , |
在文档中查找下一处匹配项 | /pattern | n | N |
在文档中查找上一处匹配项 | ?pattern | n | N |
执行替换 | :s/target/replacement | & | u |
执行一系列修改 | qx{changes}q | @x | u |
/pattern 假如我想用寄存器中的内容做为搜索条件,又该怎么来操作呢?我们可以这样来取得寄存器中的内容。 /<C-r>0
插入-普通模式
在此模式中允许我们执行一个普通命令,执行完后,可以又马上返回插入模式。<C-o>zz 这个命令用于我们重绘屏幕,然后回到插入模式,不会打断我们打字。
-- INSERT -- 模式
操作 | 用途 | 说明 |
---|---|---|
:w | 保存当前文件修改 | |
<C-r>+ | 丛外部复制粘贴到 vim 中 | |
<C-h> | 删除前一个字符(同空格键) | |
<C-w> | 删除前一个单词 | |
<C-u> | 删至行首 | |
<C-r>=6*35<CR> | 插入模式中做运算 | 210 |
返回普通模式
按键 | 用途 |
---|---|
<Esc> | 切换到普通模式 |
<C-[> | 切换到普通模式 |
<C-o> | 切换到插入-普通模式 |
替换模式
R 进入替换模式单次版本的替换模式
r{char} 允许覆盖一个字符,之后马上回到普通模式虚拟替换模式
gR 命令触发 ,建议要可能的情况下尽量使用虚拟替换模式单次版本的替换模式
gr{char} 允许覆盖一个字符,之后马上回到普通模式可视模式
3种可视模式,分别用于操作字符文本、行文本和块文本。**.**命令面向行操作使用较多。命令 | 用途 |
---|---|
v | 激活面向字符的可视模式 |
V | 激活面向行的可视模式 |
<C-r> | 激活面向列块的可视模式 |
gv | 重选上次的高亮选区 |
x | 删除列 |
相关文章推荐
- vim使用技巧总结
- vim 使用技巧与快捷键总结
- jQuery日常使用技巧总结
- 日常总结(三)火狐控制台使用技巧
- Vim使用重要技巧总结
- vim编辑器使用技巧总结
- jQuery日常使用技巧总结
- jQuery日常使用技巧总结
- python常用函数和使用技巧日常总结(不定期更新)
- 自己总结的Vim日常使用指令
- [经验总结]VIM使用技巧
- VIM使用技巧总结
- VIM使用技巧总结
- Vim使用技巧总结
- vim 使用技巧 部分总结
- Vim经常使用技巧总结2
- svn 日常使用技巧以及vim profile的配置
- Vim经常使用技巧总结1
- Linux Shell Vim 经常使用命令、使用技巧总结
- vim编辑器的使用技巧总结