linux&Perl&R  

vim学习笔记

  1. 打开/保存/退出/改变文件

    ①“:w” 后可跟文件名

    ②“:e <path/to/file>”打开一个文件

    ③“:saveas <path/to/file> ”另存为 <path/to/file>

    ④“ZZ”“x” 保存并退出

    ⑤“:bn”":bp"你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(:n到下一个文件)

  2. 快速移动光标
    ①“^”跳转:到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等);
    ②“$”行尾;

    ③“0”行首;


    ⑶、“w”跳转:将光标快速跳转到当前光标所在位置的后一个单词的首字母;
    ⑷、“e”跳转:将光标快速跳转到当前光标所在位置的后一个单词的尾字母;

    单词是默认方式,用小写e和w。(程序变量)

    如果单词是由blank字符分隔符,那么你需要使用大写的E和W。(程序语句)


    ⑸、“b”跳转:将光标快速跳转到当前光标所在位置的前一个单词的首字母;

  3. 进入输入插入模式

    ⑵、“s”:删除当前光标处字符并插入;
    ⑶、“a”:在当前光标后插入;
    ⑷、“A”:将光标移动到当前行的行末,并进入插入状态;
    ⑸、“o”:在当前行后插入新行;
    ⑹、“O”:在当前行前插入新行;
    ⑺、 “cw”:删除当前光标到所在单词尾部的字符,并插入;

  4. 文件内行间快速跳转
    (8)、合并两行:如1\n2变成1 2:shift + j

  5. 文档内部浏览
    ⑴、“1G”:跳转到文件的首行;  
    ⑵、“G”:跳转到文件的末尾行;  

  6. 删除操作
    ⑴、“x”:删除光标处的单个字符;
    ⑶、“dw”:删除当前字符到单词尾(包括空格)的所有字符;
    ⑷、“de”:删除当前字符到单词尾(不包括单词尾部的空格)的所有字符;
    ⑸、“J”:删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容;

    ⑤“D” 表示删除从当前光标到光标所在行尾的内容.

  7. 撤销回复
    ⑴、“u”:undo;
    ⑵、“U”:取消对当前行进行的所有操作;
    ⑶、“Ctrl+r”:redo;

  8. 复制与粘贴操作
    ⑴、“yy”:复制当前行整行的内容到vi缓冲区;
    ⑵、“yw”:拷贝一个单词;
    ⑶、“p”:读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)p在当前位置后,P在当前位置前。

    (4)、“Vyp”复制整行

  9. 其它:
    (1)vi +/if ip.sh 定位到指定字符窜  vi +10 ip.sh 定位到指定行  vi + filename 直接定位到最后一行
    (2)vi -r/L恢复swap文件
    (3)使用书签

  10. 命令重复

    ①"."重复上一次命令

    ②“N<command>”重复某个命令N次

  11. 单词匹配

    ①“%”  匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)

    ②“*” 和 “#”  匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)

  12. 自动补全 CTRL-P补全是向上查找以进行补全,而CTRL-N是向下查找以进行补全,在不同场合使用不同的快捷键可以加速补全的速度。



    在 vi 中可以在任何地方建立书签,并能快速地定位到建立书签的位置。
    mx - 在当前位置建立书签,使用字符 x (x 可以是任何字符,区分大小写)标识这个书签
    '(单引号)x - 光标移动到书签 x 所在行的第一个字符处
    `(反引号)x - 光标移动到创建书签 x 时光标所在的位置
    (4)跳转指定行:在cmd模式下输入行号即可。 gg shift+g

  13. “ctrl+G”查看文件名 

  14. “:f 文件名”   改变编辑中的文件名。(file)
    “:r 文件名”   在光标所在处插入一个文件的内容。(read)
    “:35 r 文件名”   将文件插入至 35 行之后。

  15. “zf”折叠, "zo"或“→” 打开折叠,“zc” 关闭折叠(只要在被折叠的块中的任一个语句就行)

  16. “:e!” 强行重编辑更便捷。这样也是会打开文件,但会放弃目前编辑文件的改变,否则如果文件已有变动,vim 预设是不让您随便离开的。:e! 后不接什么的话,代表舍弃一切修改,重新载入编辑中文件。

举例:

<start position><command><end position>

  1. “0y$” 命令意味着:

    0 → 先到行头

    y → 从这里开始拷贝

    $ → 拷贝到本行最后一个字符

  2.  “ye”从当前位置拷贝到本单词的最后一个字符。

  3. “y2/foo” 拷贝2个 “foo” 之间的字符串

  4. dt" → 删除所有的内容,直到遇到双引号—— "

区域选择 <action>a<object> 或 <action>i<object>

  1. action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。

  2. object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。

块操作: 0 <C-v> <C-d> I-- [ESC]

  1. ^ → 到行头

  2. <C-v> → 开始块操作

  3. <C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)

  4. I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。



2013-08-13 热度-1 vim

评论

热度(1)

©linux&Perl&R Powered by LOFTER