VIM 命令
    以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。
 
vim的模式
基本上可以分为3种模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),下图所示为Vim各种模式相互转换的关系图。
                                        
命令模式:控制屏幕光标的移动,进行文本的删除、复制等文字编辑工作,以及进入插入模式,或者回到底行模式。
插入模式:只有在插入模式下,才可以输入文字。按[Esc]键可回到命令行模式。
底行模式:保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号、寻找字符串等。
 
打开与退出
 
vi启动是:vi filename
该命名打开或者创建一个文件。首先进入vi后,是cmd模式(命令模式)。在该模式下可以移动光标,复制,移动,删除等。
 
vim -O file1 file2: 同时打开两个文件, ctrl+w 进行窗口切换
 
ZZ: 保存文件并退出。Note: 与其他编辑器不一样,Vim 不会自动建立一个备份文件。如果你输入 "ZZ", 你的修改立即生效并且不能恢复。你可以配置 Vim 让它产生一个备份文件。
:w 保存
wq: 保存并退出
:q: 退出
:q!: 放弃修改。按回车使命令生效。
 
在cmd下可以用下面几个命令进入编辑模式:
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
编辑模式下,只能输入,不能使用hjkl的光标移动,使用esc可以切换到cmd模式
 
光标控制:命令模式
 
光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
     h (左移)    j (下行)     k (上行)     l (右移)
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符。
 
gg命令:         跳到文件的首行
G命令:           跳到文件的最后一行
0(数字0)   移动到本行第一个字符上
^命令:           跳转到行首第一个普通字符上
$命令:            跳转到行尾, 3$ 移动到下面3行的行尾
b(begin)命令:     跳转到当前单词的前面, 2b 向后移动2个单词
e(end)命令:         跳转到当前单词的后面
w 命令:              向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。
<HOME> :       移动到本行第一个字符。同0健。
冒号+行号:        跳到指定行。比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。
 
number%命令: 跳转到number%处, 例如跳转到20%, 键入20%即可
Ctrl + e 向下滚动一行
Ctrl + y 向上滚动一行
Ctrl + d 向下滚动半屏
Ctrl + u 向上滚动半屏
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
 
删除命令:命令模式
在命令模式下,Vim提供了许多删除命令。这些命令大多是以d开头的。
x命令: 删除光标处的字符。若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。
X命令:删除光标前面的那个字符。若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n个字符
dd命令:剪切(删除)光标所在的整行。在dd前可加上一个数字n,表示删除当前行及其后n-1行的内容。
D或d$命令:删除从光标所在处开始到行尾的内容。
d0命令:删除从光标前一个字符开始到行首的内容。
dw命令:删除一个单词。若光标处在词的中间,则从光标所在位置开始删至词尾。同dd命令一样,可在dw之前加一个数字n,表示删除n个指定的单词。
 
复制命令:命令模式
y^/y0:      复制至行首, 不含光标所在处字符
y$:            复制至行尾。含光标所在处字符
yw:           复制一个 word
yG:           复制至档尾
y1G:         复制至档首
 
dd命令:  剪切当前行。
yy命令(或大写一个 Y):   拷贝当前行。2yy 表示复制两行。
cc命令:   剪切当前行并且进入插入模式。
D命令:    剪切从光标位置到行尾到剪贴板。
Y命令:    拷贝当前行。
C命令:    和 D 类似,最后进入插入模式。
x命令:     剪切当前字符到剪贴板。
s命令:     剪切当前字符到剪贴板,最后进入插入模式。
 
粘贴命令:命令模式
小写 p 代表贴至光标后(下)。 P 大写 P 代表贴至光标前(上)
 
撤销和重做
u 撤销(Undo)
U 撤销对整行的操作
Ctrl + r 重做(Redo),即撤销的撤销。
 
查找命令
/text  查找text,按n健查找下一个,按N健查找前一个。
?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。
                vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$
查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。
 
:set ignorecase   忽略大小写的查找
:set noignorecase  不忽略大小写的查找
:set hlsearch  高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。
:set nohlsearch  关闭高亮搜索显示
:nohlsearch  关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。
:set incsearch  逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。
:set wrapscan  重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

Vim 模式及常用命令整理的更多相关文章

  1. 【linux】---常用命令整理

    linux常用命令整理 一.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: l ...

  2. vim程序编辑器---常用操作整理

    vim程序编辑器---常用操作整理 移动光标方法 o 在光标行的下一行,进入编辑模式 $ 移动到光标这行,最末尾的地方 G(大写) 移动到文件最末行 :set  nu 文件显示行数 :set  non ...

  3. Tomcat性能优化及常用命令整理

    1汤姆猫性能优化 1.1连接参数 1.1.1默认连接配置 默认连接器采用阻塞式 IO,默认最大线程数为200,配置如下: <Connector port="8080" pro ...

  4. linux 服务器常用命令整理

    linux 服务器常用命令整理 目录 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload 网络传输 - scp \ rsync \ (rz ...

  5. (小组)Git 常用命令整理

    Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone git@xbc.me:wordpress.git 添加远程版本库origin,语法 ...

  6. salt 常用命令整理

    salt 常用命令整理 ***********模块*********** 查看模块列表module salt 'minion' sys.list_modules 查看指定module的function ...

  7. Dos常用命令整理

    Dos常用命令整理 打开cmd的方法 开始菜单 -> 系统 -> 命令提示符 组合键Win+R打开运行 -> 输入cmd 在任意文件夹下Shift+鼠标右键 -> 在此处打开命 ...

  8. Terminal,git,vim常用命令整理以及删除本地git仓库

    Terminal常用命令 目录操作 ll 打开目录列表 ls -a 打开目录下所有文件列表 cd 切换到某目录 mkdir 创建目录 rmdir 删除空目录 rm -rf 目录名字 强制删除目录 mv ...

  9. Linux 和 Vim 常用命令整理

    Sftp常用命令: lcd f:本地切换到 F盘 lpwd本地 当前目录 lls本地 文件列表 put 本地 上传文件到服务器(put输入后,回车会有弹窗,选择上传文件) get下载文件到本地 Lin ...

随机推荐

  1. RHEL7.1安装VNC

    1.安装包 yum install vnc* -y 2.创建password vncserver 3.创建參数文件 [root@single ~]# cp /lib/systemd/system/vn ...

  2. 深度学习2015年文章整理(CVPR2015)

    国内外从事计算机视觉和图像处理相关领域的著名学者都以在三大顶级会议(ICCV.CVPR和ECCV)上发表论文为荣,其影响力远胜于一般SCI期刊论文.这三大顶级学术会议论文也引领着未来的研究趋势.CVP ...

  3. 【v2.x OGE教程 12】 关卡编辑器帮助文档

    ] 关卡编辑器帮助文档 一.简单介绍 关卡编辑器用于游戏关卡界面元素的可视化编辑,包含元素的位置.尺寸以及其他自己定义属性.通过解析生成的数据文件就可以获取关卡信息,并能随时调整.以降低开发工作量,提 ...

  4. js---04 属性 this

    var oUl = document.getElementsByTagName('ul')[0]; var aLi = oUl.getElementsByTagName('li'); window.o ...

  5. SQL事务+异常

    BEGIN TRAN BEGIN TRY --这里写代码 --这里写代码 END TRY BEGIN CATCH ROLLBACK TRAN END CATCH COMMIT TRAN

  6. JavaScript--数据结构算法之链表

    数组的缺点:数组的长度固定,增删时比较困难要移动元素,而且数据填满再添加元素比较复杂.js:数组有split(),可以任意的分割.不存在上述问题.主要问题是:js数组都被实现成了对象,和其他语言的数组 ...

  7. vue 使用同一组件,切换时不触发created、mounted钩子

    两个页面参数不同使用同一组件,默认情况下当这两个页面切换时并不会触发created或者mounted钩子. 方法一:通过watch $route的变化来做处理 watch: { $route() { ...

  8. cmd 批处理制作

    新建个记事本abc.txt,把下面的内容复制到记事本d:cd d:\a\b\cdir d:\a\b\ccmd复制完成后并保存,把文件的后缀名.txt改为.bat变成一个批处理即abc.bat

  9. Qt虽然自己的源代码里不使用Exception,但也提供了一个QException及其子类QUnhandledException

    http://doc.qt.io/qt-5/exceptionsafety.htmlhttp://doc.qt.io/qt-5/qexception.htmlhttp://doc.qt.io/qt-5 ...

  10. android缩放动画的两种实现方法

    在android开发.我们会常常使用到缩放动画,普通情况下缩放动画有两种实现方式.一种是直接通过java代码去实现,第二种是通过配置文件实现动画,以下是两种动画的基本是用法: Java代码实现: // ...