Vim的常用命令笔记
【简介】
Vim是vi编辑器的改进版。vi是类UNIX系统里最常用的编辑器。
【模式】
在shell中直接打vim filename就会进入普通模式。按i键进入编辑模式,此时Vim底部显示INSERT表示可以编辑内容了。按Esc键退出编辑模式,按:切换到命令模式。
【常用命令】
进入vi
vi filename 打开或新建文件,并将光标置于第一行首
vi +n filename 打开文件,并将光标置于第n行首
vi + filename 打开文件,并将光标置于最后一行首
vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处
vi filename....filename 打开多个文件,依次进行编辑
vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename
从光标开始处向文件尾搜索。比如搜user 按Esc再按/user
从光标开始处向文件首搜索。 ?user
在同一方向重复上一次搜索命令 n
在反方向重复上一次搜索命令 N
查看某行 :行号
撤销上次操作 u
代码自动补全 Ctrl+n
删除当前字符 x或DEL键 (删除内容保存在缓冲区。x删除光标后的,X删除光标前的)
删除当前行 dd (删除内容保存在缓冲区)
删除当前光标至行尾的所有内容 d$
删除从当前行至文件末尾的所有行 dG
删除至当前行首 d0
左右字符互换 xp
上下两行内容互换 ddp
把当前行复制到缓冲区 y
把缓冲区中的文本插入到当前位置 p
把当前行复制到a缓冲区(可用26个字母命名多个缓冲区) ay
把a缓冲区中的文本插入当前位置 ap
上下两行合并成一行 J
重复执行上次执行的命令 .
复制粘贴一整行。假如光标在行首,要复制一行,先按Esc到命令模式,再按yy,再按p,就在该行下面复制粘贴了一整行。或者V选择拷贝内容(一行高亮),Y拷贝,P粘贴到新地方。
复制粘贴某一区间。光标移动到想要复制的字符下,按Esc,按v进入visual模式(可用高亮的色块选择内容),按左右键移动到想要复制的字段末尾,按y复制,光标移动到想要粘贴的地方,按p粘贴。
对比2个文件 vimdiff file1 file2
移动光标类命令
h j k l
左 下 上 右
nk 向上移动n行
nj 向下移动n行
nh 向左移动n列
nl 向右移动n列
$ 光标移动到当前行行尾
G 光标移动到文档最后一行开头
H 光标移动到当前屏幕首行开头
L 光标移动到当前屏幕末行开头
M 光标移动到当前屏幕中间行开头
{ 光标上移一个段落
} 光标下移一个段落
( 光标移动到句首
) 光标移动到句尾
w或W 光标右移一个字至字首
b或B 光标左移一个字至字首
e或E 光标右移一个字至字尾
nG 光标移至第n行首
n+ 光标下移n行
n- 光标上移n行
n$ 光标移至第n行尾
0 (注意是数字零)光标移至当前行首
插入文本类命令
i 在光标前
I 在当前行首
a 光标后
A 在当前行尾
o 在当前行之下新开一行
O 在当前行之上新开一行
r 替换当前字符
R 替换当前字符及其后的字符,直至按ESC键
s 从当前光标位置处开始,以输入的文本替代指定数目的字符
S 删除指定数目的行,并以所输入文本代替之
ncw或nCW 修改指定数目的字
nCC 修改指定数目的行
命令模式下
:q! 不保存退出vim
:w 保存文档,不退出vim
:x 保存并退出
:! command 运行shell命令
:r! command 将命令cmmand的输出结果放到当前行
:e filename 编辑/打开一个文件
:s/one/two 在当前行中把第一个one替换成two
:s/one/two/g 把当前行中所有的one替换成two
:%s/one/two/g 在全局范围内把one替换成two
:n1,n2s/one/two/g 将第n1行至n2行中所有的one替换成two
:tabe 新建一个标签页
:close 关闭当前标签页
:tabp 切换到上一个标签页
:tabn 切换到下一个标签页
:qa 关闭所有标签页并退出
:set number 列出行号
:reg 列出缓冲区内容
:set all 列出所有参数的配置情况
:set ignorance 设置在搜索中忽略大小写
:set nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始
:set warn 在转到别的文件时若没保存当前文件则显示NO write信息
:n1,n2 d 将n1到n2行之间的内容删除
:n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下
屏幕翻滚类命令
Ctrl+u 向文件首翻半屏
Ctrl+d 向文件尾翻半屏
Ctrl+f 向文件尾翻一屏
Ctrl+b 向文件首翻一屏
nz 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部
【vimrc配置】
在命令模式下用set命令设置的东西是不能保存的,下次打开vim时又要重新设置。所以vim提供了一个配置文件叫vimrc,可以保存自定义的配置信息。该文件在Debian系统中位于/etc/vim/目录下。在该文件中,以双引号开头的是注释。
set autoindent
自动缩排,如当前行是从第3个字符的位置开始编辑的,按回车后光标会自动定位在下一行第三3个字符的位置。
set paste
置粘贴模式,这样粘贴过来的程序代码就不会错位了。
打开文件时自动回到上次编辑位置。
if has("autocmd")
autocmd BufRead *.txt set tw=
autocmd BufReadPost *
\ if line("'\"") > && line ("'\"") <= line("$") |
\ exe "normal g'\"" |
\ endif
endif
Vim的常用命令笔记的更多相关文章
- Linux 常用命令笔记
Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...
- Linux常用命令 笔记
Linux常用命令 笔记 一.文件处理命令 1. ls命令:显示目录文件 -a 显示所有文件,包括隐藏文件.(all) ...
- vim最常用命令
vi/vim常用命令汇总 vi/vim概述 vi/vim是Linux和Unix下的一款非常强大的编辑器,vim是vi的增强 版,命令更加多种和复杂,但是最常用的也就是那几个. vi有三种模式 命令行模 ...
- Linux下Vim工具常用命令
原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚 ...
- VIM一些常用命令,方法,配置
配置文件地址 github 工具只是为了更好的工具,选择一种,坚持使用学习记忆,熬过瓶颈期就可以了. 现在我基本大的项目是IDE+vim 插件,写小代码是VIM. 常用的操作,便捷的方法 1.如何选中 ...
- Linux环境下vi/vim编辑器常用命令
使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...
- vim 编辑器常用命令
vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I,o ...
- 10 分钟上手 Vim,常用命令大盘点
传闻有 180 万的程序员不知道如何退出 Vim 编辑器,真的有这么困难吗?下面给大家整理了一份 Vim 常用命令,让你 10 分钟快速上手 Vim,溜得飞起! 以下命令请在普通模式执行 1.移动光标 ...
- vim操作常用命令总结
这里记录下linux在vim编辑器中的常用命令 vi 的三种模式: 一般模式:以vi打开一个文件时,就是一般模式:可以移动光标,删除字符或删除整行,可以复制.粘贴等操作 编辑模式:在一般模式按下 i ...
随机推荐
- openrisc 之 Wishbone总线学习笔记——总线特性
特性: 一,互联方式: 支持点到点.共享总线.十字交叉(Crossbar)和基于交换结构(Switch fabric)的互联. 二,数据操作方式:单次读/写操作.块读/写操作,读改写(RMW,Read ...
- 一些安全相关的HTTP响应头
转:http://www.2cto.com/Article/201307/230740.html 现代浏览器提供了一些安全相关的响应头,使用这些响应头一般只需要修改服务器配置即可,不需要修改程序代码, ...
- "No appenders found for logger" and "Please configure log4j properly"
Why do I see a warning about "No appenders found for logger" and "Please configure lo ...
- Ajax学习(三)——XMLHttpRequest对象的五步使使用方法
Ajax的核心技术是XMLHttpRequest对象,它能够在不向server提交整个页面的情况下.实现局部更新网页.通过这个对象,Ajax能够像桌面应用程序那样仅仅与server进行数据层的 ...
- 一次搞定cocos2d-x的 Android.mk 文件
cocos2d-x 打 android 包时要修改 Android.mk 文件,但每次修改很麻烦,如果源文件很多的话就坑死了,也可以写一个脚本来自动生成这个文件,但每次还要重新生成一下,将其修改下面的 ...
- 【 D3.js 入门系列 — 2 】 绑定数据和选择元素
1. 如何绑定数据 D3 有一个很独特的功能:能将数据绑定到 DOM 上,也就是绑定到文档上.这么说可能不好理解,例如网页中有段落元素<p>,我们可以将整数 5 与 <p>绑定 ...
- python几个排序函数 sort sorted argsort
Python中排序常用到的sort .sorted和argsort函数 [摘要:Python中sort 战 sorted函数 一 .先容 sort函数是list列表中的函数,而 sorted能够对li ...
- USACO Healthy Holsteins DFS
使用排列组合,遍历所有可能的情况C(1)+C(2)+C(3)……C(n)= 2^G种组合 数据规模不大,暴力过去最多也就是2^15 = 23768种情况 所以就暴力咯,不过还是Debug了一会 Sou ...
- MessageBox不能前置显示的问题
在MFC的开发中,经常会遇到一些莫名奇妙的问题,可能是经验不足的原因吧. 进入正题....在手头的项目中,用MFC做的界面应用.在某一天突然发现程序界面不能进行响应,经过反复的调试后发现:Messag ...
- android 程序崩溃crash日志的捕捉
android 程序崩溃crash日志的捕捉 之前在项目开发过程中,一直会遇到程序崩溃了,但是测试組的哥哥们又没及时的导出日志.... 后来在诳群的时候听别人说起,腾讯有那么一个叫bugly的东西 将 ...