【APUE】vim常用命令
2024-09-07 19:57:39
转自:http://coolshell.cn/articles/5426.html
基本命令:
i
→ Insert 模式,按ESC
回到 Normal 模式.x
→ 删当前光标所在的一个字符。:wq
→ 存盘 + 退出 (:w
存盘,:q
退出) (陈皓注::w 后可以跟文件名)dd
→ 删除当前行,并把删除的行存到剪贴板里p
→ 粘贴剪贴板
简单的移动光标
0
→ 数字零,到行头^
→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)$
→ 到本行行尾g_
→ 到本行最后一个不是blank字符的位置。/pattern
→ 搜索pattern
的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
拷贝/粘贴 (陈皓注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)
P
→ 粘贴yy
→ 拷贝当前行
Undo/Redo
u
→ undo<C-r>
→ redo
打开/保存/退出/改变文件(Buffer)
:e <path/to/file>
→ 打开一个文件:w
→ 存盘:saveas <path/to/file>
→ 另存为<path/to/file>
:x
,ZZ
或:wq
→ 保存并退出 (:x
表示仅在需要时保存,ZZ不需要输入冒号并回车):q!
→ 退出不保存:qa!
强行退出所有的正在编辑的文件,就算别的文件有更改。:bn
和:bp
→ 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
让我们看一下vim是怎么重复自己的:
.
→ (小数点) 可以重复上一次的命令- N<command> → 重复某个命令N次
你要让你的光标移动更有效率,你一定要了解下面的这些命令,千万别跳过。
- N
G
→ 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行) gg
→ 到第一行。(陈皓注:相当于1G,或 :1)G
→ 到最后一行。- 按单词移动:
w
→ 到下一个单词的开头。e
→ 到下一个单词的结尾。
最强的光标移动:
%
: 匹配括号移动,包括(
,{
,[
. (陈皓注:你需要把光标先移到括号上)*
和#
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:
<start position><command><end position>
例如 0y$
命令意味着:
0
→ 先到行头y
→ 从这里开始拷贝$
→ 拷贝到本行最后一个字符
d
最新文章
- mysql主从切换
- WPF初学(一)——布局【良好界面的基础】
- 学习mongo系列(十一)关系
- eclipse debug小技巧
- 有人向我反馈了一个bug
- django如何用orm增加manytomany关系字段(自定义表名)
- Python的面向对象2
- IT项目外包有哪些注意事项
- Android_HTML解析器_jsoup
- OS X 10.10 Yosemite Beta能够下载了
- TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。
- OOAD-设计模式(二)之GRASP模式与GOF设计模式概述
- Java第1次实验提纲(基本概念与引入PTA+Git)
- 记一次MySQL删库的数据恢复
- 【MYSQL】MYSQL报错解决方法: Warning: (3719, ";&#39;utf8&#39; is currently an alias for the character set UTF8MB3, but will be an alias for UTF8M B4 in a future release.";
- 下载 youtube 油管的视频
- delphi 调用QQ邮箱发送邮件
- SQL Server扩展事件的使用ring_buffer target时“丢失”事件的原因分析以及ring_buffer target潜在的问题
- interface 界面&;接口
- SALALchemy Session与scoped_session的源码分析
热门文章
- Ubuntu 16.04 LTS下matplotlib安装出错
- instance of type of object.prototype.tostring 区别
- cocos2dx 接入bugly 报错 Fail to get class by NSClassFromString(BuglyAgent)
- Jquery中children与find之间的区别
- Mapping (RESOURCE) not found :和BeanFactory not initialized or already closed - call &#39;refresh&#39; before access记录
- JS第三方中间件的延伸
- Java编程:常见问题汇总
- 乘法逆元-洛谷-P3811
- Jenkins出现 {";changed";: false, ";msg";: ";mkdir: cannot create directory ‘/root/.ansible/tmp/ansible-tmp-1552390265.8-253945919613076’: No space left on device\n";, ";unreachable";: true}
- Backspace doesn&#39;t delete inner html tags of a contenteditable DIV in Firefox