显示位置信息
命令CTRL-G可在屏幕的下端显示当前所在位置的信息。我们还可以在CTRL-G命令加上一个数字参数,这个数字越大得到的信息就越详细。命令1CTRL-G会显示文件的全路径。命令2CTRL-G会同时显示缓冲区的数字标号。
命令gCTRL-G可显示出当前文件中的字符数的信息。主要显示出当前行数(Line)、列数(Col)、字数(Word)、字符数(Char)和字节数(Byte)等信息。
常见错误 vim 不能正常保存,需强制保存 看是不是在_vimrc中设置了临时文件的路径,但你并没有创建相应的文件夹。这种情况多发生在重装系统的情况下。 打开关闭 ZZ 相当于:wq ZQ相当于:q! :saveas <path/to/file> →另存为 <path/to/file> 追加到一个文件 :2 w >>a.txt 把第2行追加到a.txt 移动类 为了满足少数用户屏幕行的移动,vim提供了 gj gk 命令,来实现屏幕行的移动 shift + g 直接跳到最后一行 相当于 G H移动到屏幕第一行 L移动到屏幕最后一行 M移动到屏幕中间 放置行 有时我们希望将指定的行放在屏幕顶端。先将光标放在指定的行上,然后输入z<Enter>,这一行就会出现在屏幕的顶端了。我们还可以利用参数将指定的行置于屏幕顶端。例如命令8z<Enter>就是将第八行置于屏幕顶端。这个命令将指定的行置于顶端,并将光标移动到本行第一个非空白字符处。 如果要将指定行置于顶端,并将光标保持在一行的当前位置不变,可以使用zt命令。 如果要将指定的行放在屏幕底部,可以使用命令z-或是zb。所不同的是,前者将光标放在这一行中第一个没有空白符的字符处,而后者是保持光标的位置不变。 命令zz或是z.可以将指定的行放在屏幕的中部。这两个命令的不同就是,前者保持光标的位置不变,而后者是将光标置于第一个非空白的字符处。屏幕移动类 命令小结 CTRL-E 向下动滚一行CTRL-F 向下滚动一屏PageDownCTRL-B 向上滚动一屏PageUpH 移动到屏幕顶部M 移动到屏幕中间L 移动到屏幕底部 标记与宏 m q @s 播放宏s @@播放刚才的宏 跳转类操作 Ctrl+O 跳转到前一个位置, 多次按可依次往前跳 Ctrl+I 如果使用了Ctrl+O,则再使用Ctrl+I可以往回跳 '{标记} 返回到标记的那一行的行首 `{标记} 返回到标记的那一行的具体的位置 '. 跳转到上一次修改过的行(SUPER) {这与 '标记 很像 也是跳到标记的那一行} `. 跳转到上一次修改过的地方,比行还精确 { 与`标记很像,跳到标记的那一位置} '' {两个单引号}返回到你最后停留的那一行的行首 ``{两个tab键上面的那个键}返回到你最后停留的那一个具体的位置 基本编辑操作 A 行尾插入 y0 d0 y$ d$ yfa dfa :12,y 拷12行到光标所在行之间的内容 :,24 y 拷光标当前行到24行之间的内容 10w 路过10个字 插入100个de 100ide <esc> 用vim 写文本文件时遇英文 故意留空格,这样用w可以快速移动到英文。{我自己的体会} C 修改光标处到行末字符,即先删除后插入(same as c$) 两行合并为一行:J 合并多行 :3,5join 合并3-5行 10w 路过10个字 插入100个de 100ide <esc> 用vim 写文本文件时遇英文 故意留空格,这样用w可以快速移动到英文。{我自己的体会} C 修改光标处到行末字符,即先删除后插入(same as c$) 用一条命令删除第 50 行到 100 行是在一次面试中被问到的一个问题,当时没回答出来,但是永远也不会忘记了。:50,100 d删除第50行:50 d
>> 输入此命令则光标所在行向右移动一个 tab.5>> 输入此命令则光标后 5 行向右移动一个 tab.:12,24> 此命令将12行到14行的数据都向右移动一个 tab. > 增加缩进,"x>"表示增加以下x行的缩进 < 减少缩进,"x<"表示减少以下x行的缩进 u/U在正常模式下与选择模式下作用不一样正常模式下:u 撤销 U用来撤消整行无作用选择模式下:u 将选择的字母变小写 U将选择的字母变大写 标注marks Examples: ma - set current cursor location as mark a 'a - jump to beginning of line of mark a `a - jump to postition of mark a d'a - delete from current line to line of mark a d`a - delete from current cursor position to mark a c'a - change text from current line to line of mark a y`a - yank text to unnamed buffer from cursor to mark a :marks - list all the current marks r 只替换当前光标的字母,R 会向后替换 大小写转换 ~: 更改当前光标下的字符的大小写 注意是波浪号 行内跳转 0 ^ $ f F t T e w E W b B 0 →到行头 ^ →到本行的第一个非blank字符 $ →到行尾 g_ →到本行最后一个不是blank字符的位置。 fa →到下一个为a的字符处,你也可以fs到下一个为s的字符。 ta →到逗号前的第一个字符。逗号可以变成其它字符。 3fa →在当前行查找第三个出现的a。 F 和 T →和 f 和 t 一样,只不过是相反方向 w 到下一个单词的开头e到下一个单词的结尾 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(陈皓注:程序变量> b前一个单词的开头 B按blank前一个单词的开头 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(陈皓注:程序语句 基本查找操作 快速查找单词 * 高亮显示光标处当前单词(以空格为区分 即test test1则test test1各为一个单词),并跳转到下一匹配处 # 与*相反,跳转到上一匹配处 注意 * # 只匹配整个单词。 即test 只能匹配test 不能匹配test1中的test g* g# 可以部分匹配。 如test 可以匹配test 也可以匹配test1中的test /<C-R><C-W> : Pull <cword> onto search/command line 分屏操作 命令一览命令小结 :split 新建一个窗口并显示当前文件:new 新建一个窗口并开始新文件:sview 新建一个窗口并只读打开文件ctrl+Ww 切换窗口ctrl+Wj 切换至下一窗口ctrl+Wk 切换至上一窗口ctrl+Wt 切换至顶部的窗口ctrl+Wb 切换至底部的窗口ctrl+Wp 切换至刚才所在的窗口ctrl+Wr 向下循环移动窗口ctrl+WR 向上循环移动窗口ctrl+Wx 将当前窗口与下一窗口位置对换ctrl+WK 将当前窗口放到最顶端ctrl+WJ 将当前窗口放到最底部ctrl+Wc 关闭当前窗口ctrl+Wo 关闭其他所有窗口ctrl+W+ 增大窗口ctrl+W- 减小窗口ctrl+W= 等分窗口Ctrl+W_ 最大化窗口 <C-w><dir> : dir就是方向,可以是 hjkl 或是←↓↑→中的一个,其用来切换分屏。 文件、buff操作 命令一览 基本命令 显示换行符 $ :set list 如果要取消 :set nolist 生成html :TOhtml 也可选择范围 如 :10,40TOhtml 如果是diff窗口还会显示两个窗口的内容。 指定一个文件的类型:set ft=vimwiki 指定文件格式是unix下还是dos下 set fileformats=unix命令:set ruler可以打开标尺选项(ruler option)。将在屏幕右下角,显示当前所在的行和列,以及相对于整个文件所处的位置。
From WizNote转载于:https://www.cnblogs.com/mang/archive/2013/02/21/2920215.html
