1. .命令:“重复上次修改”;
  2. x命令:删除光标下的字符;
  3. u命令:撤销上次修改;
  4. dd命令:删除整行;
  5. >G命令:增加从当前行到文档末尾处的层级缩进;
  6. $命令:把光标移至行尾;
  7. a命令:在光标之后添加内容;
  8. A命令:在当前行的结尾添加内容;
  9. f{char}命令:让Vim查找下一处指定字符出现的位置,如果找到了,就直接把光标移到那里;
  10. ;命令:重复查找上次f命令所查找的字符;
  11. *命令:光标会调到下一个匹配项上,所有出现这个词的地方都会被高亮显示出来;
  12. n命令:跳到下一个匹配项;
  13. cw命令:删除从光标位置到单词结尾见的字符,并进入插入模式;

    理想的模式:用一键移动,另一键执行。

停顿时请移开画笔

普通模式是Vim的自然放松状态,在普通模式中,我们有众多工具可以使用。

把撤销单元切成块

在Vim中,我们自己可以控制撤销的粒度。
o 命令: 另起一行并进入插入模式。
---

构造可重复的修改

db 命令:删除从光标起始位置到单词开头的内容;
dw 命令:删除整个单词;
daw 命令:删除一个文本对象;
---

能够重复,就别用次数

d2w 命令:删除两个单词; is not better than dw .命令;

操作符 + 动作命令 = 操作

操作符命令 动作命令
c 修改 l 一个字符
d 删除 aw 一个完整单词
y 复制到寄存器 ap 一个段落
g~ 反转大小写
gu 转换为小写
gU 转换为大写
> 增加缩进
< 减少缩进
= 自动缩进
! 使用外部程序过滤{motion}所跨越的行

在插入模式中可即时更正错误

<C-h> 删除前一个字符
<C-w> 删除前一个单词
<C-u> 删除至行首
---

返回普通模式

<ESC> 切换到普通模式
<C-[> 切换到普通模式
<C-o> 切换到插入-普通模式

zz 重绘屏幕

不离开插入模式,粘贴寄存器中的文本

<C-r>{register} 粘贴单词

随时随地做运算

<c-r>= 访问及表达式寄存器

用字符编码插入非常用字符

<C-v>{code} 以十进制字符编码插入字符
<C-v>u{code} 以十六进制字符编码插入字符
<C-v>{nondigit} 按原义插入非数字字符
<C-k>{char1}{char2} 插入以二合字母{char1}{char2}表示的字符
---

用替换模式替换已有文本

R 进入替换模式
gR 进入虚拟替换模式,会把制表符当做一组空格进行处理 ;在此替换模式中,我们是按屏幕上实际显示的宽度来替换字符的,而不是按文件中所保存的字符进行替换。这会减少意外情况的发生。
r{char} 单次替换模式
gr{char} 单次虚拟替换模式

Vim具有3种不同的可视模式,分别用于操作字符文本、行文本或块文本。

选择高亮选区

  1. 激活可视模式

v 激活面向字符的可视模式;
V 激活面向行的可视模式;
<C-v> 激活面向列块的可是模式;
gv 重选上次的高亮选区;

  1. 切换选区的活动端

b 跳转单词词首
e 跳转单词词尾
o 切换活动的端点

: 进入命令行模式

:[range]delete [x] 删除指定范围的行 [到寄存器x中]
:[range]yank [x] 复制指定范围的行 [到寄存器x中]
:[line]put [x] 在指定行后粘贴寄存器x中的内容
:[range]copy {address} 把指定范围内的行拷贝到{address}所指定的行之下
:[range]move {address} 把指定范围内的行移动到{address}所指定的行之下
:[range]join 连接指定范围的行
:[range]normal {commands} 对指定范围内的每一行执行普通模式命令 {commands}
:[range]subsitute/{pattern}/{string}/[flags] 对指定范围内出现{pattern}的地方替换为{string}
[range]global/{pattern}/[cmd] 对指定范围内匹配{pattern}的所有行,在其上执行Ex命令{cmd}

在一行或多个连续行上执行命令

  1. 用地址指定一个范围
    :{start},{end}
    . 代表当前行的地址
    % 代表当前文件中的所有行
    1 文件的第一行
    $ 文件的最后一行
    0 虚拟行,位于文件第一行上方

  2. 复制行,移动行
    :6t 把第6行复制到当前行下方
    :t6 把当前行复制到第6行下方
    :t. 为当前行创建一个副本
    :t$ 把当前行复制到文本结尾
    ’<, ‘>to 把高亮选中的行复制到文件开头

:[range]move {address}

Vim 操作命令不完全汇总的更多相关文章

  1. vim操作命令备忘

    vim操作命令备忘 查找/替换 :%s/keyword//gn //搜索匹配的关键词数量 :%s/keywords/target //替换关键词 待续……

  2. 尚学linux课程---12、vim操作命令2

    尚学linux课程---12.vim操作命令2 一.总结 一句话总结: 要看不同的视频,每个视频的关键点都不一样,不如之间的的视频就没讲到vim中set nu是什么意思 学了的内容一定要练,不然真的是 ...

  3. 尚学linux课程---11、vim操作命令1

    尚学linux课程---11.vim操作命令1 一.总结 一句话总结: 要看不同的视频,每个视频的关键点都不一样,不如之间的的视频就没讲到vim中set nu是什么意思 1.Vi有三种基本工作模式? ...

  4. vim操作命令-笔记

    显示行号:在vim命令行模式下输入 :set nu 或 :set number 取消显示行号:在vim命令行模式下输入 :set nonu 或 :set nonumber 查看文件编码格式: :set ...

  5. vim指令,快捷键汇总

    Vim 命令.操作.快捷键全集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vi ...

  6. vim 操作命令大全(转)

    1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...

  7. vim 操作命令大全

     转子:https://www.cnblogs.com/yangjig/p/6014198.html 和 https://blog.csdn.net/u010956473/article/detail ...

  8. vim 折叠代码技巧汇总

    以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...

  9. vim操作命令

    一,命令模式下 文件顶部: gg 文件底部: G 删除当前行:dd 删除当前行,并进入INSERT模式: cc 取消删除:u

随机推荐

  1. c++11实现l延迟调用(惰性求值)

    惰性求值 惰性求值一般用于函数式编程语言中,在使用延迟求值的时候,表达式不在它被绑定到变量之后就立即求值,而是在后面的某个时候求值.     可以利用c++11中的std::function, lam ...

  2. poj_1151 线段树

    题目大意 在平面上给定n个矩形,可以相互覆盖全部或者部分,求出矩形占据的总面积. 题目分析 将矩形按照x方向的进行分割之后,将平面沿着y方向划分一系列单元(不定高度),每个矩形在y方向上占据若干连续的 ...

  3. UEditor整合代码高亮插件SyntaxHighlighter

    1  下载UEditor : http://ueditor.baidu.com/website/download.html 下载SyntaxHighlighter :https://github.co ...

  4. [WIFI] WIFI 破解(初级)

    话不多说,先来看看字典破解 wpa2 的效果 =================================== ========================================= ...

  5. Unity3D笔记五 快捷键

    一.近距离查看游戏对象 在Hierarchy视图中选择游戏对象,然后在Scene视图中按快捷键“F”来近距离查看该游戏对象. 二.游戏对象不在主摄像头中? Hierarchy中双击选择需要显示的游戏对 ...

  6. Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)

    当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂.这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管 ...

  7. MYSQL查看数据表最后更新时间

    MYSQL查看数据表最后更新时间 - 拨云见日 - CSDN博客 https://blog.csdn.net/warnerwu/article/details/73352774 mysql> S ...

  8. a Javascript library for training Deep Learning models

    w强化算法和数学,来迎接机器学习.神经网络. http://cs.stanford.edu/people/karpathy/convnetjs/ ConvNetJS is a Javascript l ...

  9. Android之上下文context

    Context,中文直译为“上下文”,SDK中对其说明如下: 1.它描述的是一个应用程序环境的信息,即上下文. 2.该类是一个抽象(abstract class)类,Android提供了该抽象类的具体 ...

  10. RabbitMQ(转)

    add by zhj: 如果用Python,那可以用celery,它是一个分布式任务队列,它的broker可以选择Rabbitmq/Redis/Mongodb等, celery通过Kombu这个lib ...