标签:vim 模式 快捷命令
1.1写在前言
在文章开始的时候,提下Vim的四个模式:命令模式,可视模式,编辑模式,正常模式。文章基本采自我平常所作的记录,在此整理编辑下,做个标记。
2.1处理文件命令(命令行模式):
2.1.1在命令模式下打开文件如:open aa.py 或 :e aa.py
2.1.2将当前文件另存为: saveas ~/test.py 或 w ~/test.py
2.1.3强制保存文件(在用户权限不足时)如:w !sudo tee %
2.1.4 (正常模式下) ZZ 保存文件推出 :x 仅在有改动文件需要保存
时,才有保存动作
2.1.5:在打开的各文件当中切换: :bp 或 :bn
2.2查找文本(正常模式下)
2.2.1: ?向光标所在行的上方找
2.2.2: / 向光标所在行的下方找 <小技巧:在搜索完成后,输入
n,会在输入的字符搜索块上来回跳动>
2.2.3:数字0:跳到当前行的行首
2.2.4 : $ 跳到当前行的末尾
2.2.5: ^ 跳动光标所在行首非空格的位置
2.2.6:g_ 跳到光标所在行末非空格的位置
2.2.7:向上匹配单词:光标移到要匹配的单词上,输
入# 即可看到被选中的搜索结果 ,输入字符n,可在各搜索的单词间跳动
2.2.8:向下匹配单词:光标移到要匹配的单词上,输
入* 即可看到被选中的搜索结果,输入字符n,可在各搜索的单词间跳动
2.2.9:符号匹配: 可匹配 ( [ { 操作方式: 把光标移到一侧的符合上
输入% 即可跳跃到另一侧的符号上
2.2.10:字符匹配(当前光标所在行):比如fa 即跳
到当前行光标后面以a字符开头处。3fa 跳动当前行第三个字符a处。Fa功能
相反,是往前跳动
2.2.11:w 光标移动 到下一个单词的首部
2.2.12:e 光标移到下一个单词的尾部
2.2.13:b 光标移到上一个单词 的首部
2.2.14:nG 光标移到第n行 G gg
2.2.15: ) 向后移动一个句子,注意句子是以 . 区分
}向后移动一个段落 ( 或 { 正好相反
2.2.16:M 移动到屏幕中间
2.2.17: H向上移动到屏幕首部,L向下移动到 屏幕末尾
2.2.18:Ctrl-i Ctrl-o(字母o) 光标在前后两次位置来回跳跃
2.3文本处理(正常模式):
2.3.1:u 取消上次操作
2.3.2: yy 拷贝光标所在当前行 nyy:从光标往下n行拷贝
2.3.3: p 粘帖一次 np 粘帖n次
2.3.4: . 重复上一条命令 n. 重复上一条命令n次
2.3.5:ye 拷贝一个单词
2.3.6: 删除当前光标所在行的所有内容,知道遇到指定字符:如dta
2.3.7:J将光标所在当前行及下一行合并
2.3.8:D删除当前光标位置到行末的所有内容
2.3.9: Ctrl-r 重做上一个命令
2.23.10:ddp 交换当前光标所在行与下一行的位置
2.3.11: %s /foo/bar/g 将每行的foo替换成bar 或者可以这样写:m,n s/foo/bar/g 将从m到n行的foo替换成bar
2.3.12: s/foo/bar/g 将光标所在当前行的foo替换成bar
2.3.13:删除光标所在行 dd 【命令行模式下 : 2,$d 删除第二行之后的
所有内容 dw 删除当前光标后面的一个单词 daw 删除单词,包括单词间
的空格 cw:删除一个单词并进入插入模式,cc:删除一行并进入插入模式。】
2.3.14: r 替换当前光标位置的字符
2.3.15:R 替换当前光标字符,并继续向后替换
2.3.16: I(大写字母 i) 从光标所在当前行开始插入
2.3.17:A 从光标所在当前行末尾开始插入
2.3.18 c-p(c-n) 在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令会在所有在这个 vim 程序中打开的文件中进行匹配.
2.3.19: c-x-l 在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的文档中进行匹配.
2.3.20: c-x-f 在编辑模式中, 这个命令表示补齐文件名. 如输入: /usr/local/tom 后再输入此命令则它会自动匹配出: /usr/local/tomcat/
2.3.21: abbr 即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个 字符串. 比如在编写java文件的常常输入 System.out.println, 这个时候为了减少敲字. 就可以写成这个样子: :abbr sprt System.out.println 以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System.out.println
2.3.22: :%s= *$== 也可以这么写(命令模式: :%s/ *$//g 将所有行尾多余的空格删除,注意在*号前有一空格
2.3.23: :g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除.
2.3.24: > 输入此命令则光标所在行向右移动一个 tab.
2.3.25: 5>> 输入此命令则光标后 5 行向右移动一个 tab.
2.3.26: :12,24> 此命令将12行到14行的数据都向右移动一个 tab.
2.3.27: :12,24>> 此命令将12行到14行的数据都向右移动两个 tab. 定义Tab大小的方法如下:
:set shiftwidth=4 设置自动缩进 4 个空格, 当然要设自动缩进先.
:set sts=4 即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.
:set tabstop=4 实际的 tab 即为 4 个空格, 而不是缺省的 8 个.
:set expandtab 在输入 tab 后, vim 用恰当的空格来填充这个 tab.
2.3.28:guu – 把一行的文字变成全小写。或是【Vu】
2.3.29:gUU – 把一行的文件变成全大写。或是【VU】
2.3.30:ga – 查看光标处字符的ascii码
2.3.31:g8 – 查看光标处字符的utf-8编码
2.3.32:gf – 打开光标处所指的文件 (这个命令在打到#include头文件时挺好用的,当然,仅限于有路径的)
2.4语法检查(正常模式下操作)
2.4.1:命令 模式中手动开启语法检查的方法: set splll 开启语法检查 set nospell 关闭语法检查
2.4.2:]s 跳到光标位置之后检测的语法错误,注意 是右中括号
2.4.3:[s 跳到光标位置的上一处检测到的语法错误
2.4.4: z= 光标移到语法错误的标记上,此命令给出修改的建议
2.4.5:zg 将识别到的错误标记标为正确 zw 与 zg功能相反
2.5可视模式(重在结合之前提到的命令,正常模式下操作)
2.5.1: v 基于字符的选择并进入可视模式
2.5.2: V基于行选择并进入可视模式
2.5.3: Ctrl-v 基于段落选择并进入可视模式
2.5.4: vip 选中一个段落并进入可视模式编辑
2.5.5:vi括号 光标应先停留在括号内部,选中括号内的所有内容。如 vi{
若括号内部具有嵌套关系(前提:光标停在最内一层内容上) 举例如
v2i{ 选中2层括号里的内容
vi{ 只会选中最内一层括号内的内容
2.5.6:简单举例: v2wy 选择光标位置与之后的共2个单词,进行复制
2.6宏操作步骤(正常模式下操作)
2.6.1:录制宏与命名: qa a为宏的名字
2.6.2: 结束宏的录制: q
2.6.3: 调用宏: n@a n为调用次数 a为宏的名字
2.7分屏:(命令模式)
2.7.1:竖屏 sv filename 打开一个文件,以横向分割布局模式
2.7.2:横屏 vs filename 打开一个文件,以纵向分割布局模式
2.7.3:关闭窗口的相关命令: qall wall wqall xall close quit
2.7.4: 窗口切换 切换相关命令: Ctrl + (i,j,l,k)
2.7.5: Ctrl-W + 扩大窗口 Ctrl-W - 缩小窗口
2.8补充
2.8.1: 命令模式下 :Te Tab页浏览 ,切换页面的方式(正常模式): gt到下 一页,gT 返回到前一页 {i}gt 切到第i页
2.8.2: tabs 查看现在打开的窗口和Tab的情况
2.8.3:括号段落内的缩进(正常模式): 光标移到括号一侧上,键入 =%
2.8.4:编辑文件内执行shell命令(命令模式):如 !命令
2.8.5: 多行组合复制(命令模式):如 15,20 co 13 将15到20行的内容 复制到13行下
2.8.6:关键字补全 Ctrl +p 查看当前位置: ctrl +g
2.8.7:设置文本格式(命令模式): :set ff=unix 设置文本文件的格式 为Unix,去掉windows系统文件中的 ^M
本文出自 “拾掇知识的碎片” 博客,请务必保留此出处http://wyh550.blog.51cto.com/10089932/1771642
标签:vim 模式 快捷命令
原文地址:http://wyh550.blog.51cto.com/10089932/1771642