Vi

使用vim有段时间了,先简单写下作个标记,之后再详细整理。
php

vim使用

vimtutor中的讲解不错,直接使用吧。(shell下输入:vimtutor)git

第一讲

  1. 光标在屏幕文本中的移动既能够用箭头键,也能够使用 hjkl 字母键。
         h (左移)       j (下行)       k (上行)     l (右移)

  2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>

  3. 欲退出 Vim 编辑器,请输入 <ESC>   :q!   <回车> 放弃全部改动。
                      或者输入 <ESC>   :wq   <回车> 保存改动。

  4. 在正常模式下删除光标所在位置的字符,请按: x

  5. 欲插入或添加文本,请输入:

         i   输入欲插入文本   <ESC>             在光标前插入文本
         A   输入欲添加文本   <ESC>             在一行后添加文本

特别提示:按下 <ESC> 键会带您回到正常模式或者撤消一个不想输入或部分完整
的命令。github

第二讲

  1. 欲从当前光标删除至下一个单词,请输入:dw
  2. 欲从当前光标删除至当前行末尾,请输入:d$
  3. 欲删除整行,请输入:dd

  4. 欲重复一个动做,请在它前面加上一个数字:2w
  5. 在正常模式下修改命令的格式是:
               operator   [number]   motion
     其中:
       operator - 操做符,表明要作的事情,好比 d 表明删除
       [number] - 能够附加的数字,表明动做重复的次数
       motion   - 动做,表明在所操做的文本上的移动,例如 w 表明单词(word),
                  $ 表明行末等等。

  6. 欲移动光标到行首,请按数字0键:0

  7. 欲撤消之前的操做,请输入:u (小写的u)
     欲撤消在一行中所作的改动,请输入:U (大写的U)
     欲撤消之前的撤消命令,恢复之前的操做结果,请输入:CTRL-R
shell

第三讲

  1. 要从新置入已经删除的文本内容,请按小写字母 p 键。该操做能够将已删除
     的文本内容置于光标以后。若是最后一次删除的是一个整行,那么该行将置
     于当前光标所在行的下一行。

  2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
     符便可。

  3. 更改类命令容许您改变从当前光标所在位置直到动做指示的位置中间的文本。
     好比输入 ce 能够替换当前光标到单词的末尾的内容;输入 c$ 能够替换当
     前光标到行末的内容。

  4. 更改类命令的格式是:

         c   [number]   motionvim

第四讲

  1. 要从新置入已经删除的文本内容,请按小写字母 p 键。该操做能够将已删除
     的文本内容置于光标以后。若是最后一次删除的是一个整行,那么该行将置
     于当前光标所在行的下一行。

  2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
     符便可。

  3. 更改类命令容许您改变从当前光标所在位置直到动做指示的位置中间的文本。
     好比输入 ce 能够替换当前光标到单词的末尾的内容;输入 c$ 能够替换当
     前光标到行末的内容。

  4. 更改类命令的格式是:

         c   [number]   motion编辑器

第五讲

  1. :!command 用于执行一个外部命令 command。

     请看一些实际例子:
         (MS-DOS)         (Unix)
          :!dir            :!ls            -  用于显示当前目录的内容。
          :!del FILENAME   :!rm FILENAME   -  用于删除名为 FILENAME 的文件。

  2. :w FILENAME  可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
     件中。

  3. v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件
     FILENAME 中。

  4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
     后面。

  5. :r !dir 能够读取 dir 命令的输出并将其放置到当前文件的光标位置后面。
spa

第六讲

  1. 输入小写的 o 能够在光标下方打开新的一行并进入插入模式。
     输入大写的 O 能够在光标上方打开新的一行。

  2. 输入小写的 a 能够在光标所在位置以后插入文本。
     输入大写的 A 能够在光标所在行的行末以后插入文本。

  3. e 命令能够使光标移动到单词末尾。

  4. 操做符 y 复制文本,p 粘贴先前复制的文本。

  5. 输入大写的 R 将进入替换模式,直至按 <ESC> 键回到正常模式。

  6. 输入 :set xxx 能够设置 xxx 选项。一些有用的选项以下:
        'ic' 'ignorecase'       查找时忽略字母大小写
        'is' 'incsearch'        查找短语时显示部分匹配
        'hls' 'hlsearch'        高亮显示全部的匹配短语
     选项名能够用完整版本,也能够用缩略版本。

  7. 在选项前加上 no 能够关闭选项:  :set noic.net

第七讲

  1. 输入 :help 或者按 <F1> 键或 <Help> 键能够打开帮助窗口。

  2. 输入 :help cmd 能够找到关于 cmd 命令的帮助。

  3. 输入 CTRL-W CTRL-W  能够使您在窗口之间跳转。

  4. 输入 :q 以关闭帮助窗口

  5. 您能够建立一个 vimrc 启动脚本文件用来保存您偏好的设置。

  6. 当输入 : 命令时,按 CTRL-D 能够查看可能的补全结果。
     按 <TAB> 能够使用一个补全。
插件

2. 键盘图

由于图片大小有限制,图片不太清晰。
命令行

3. 插件

Taglist+cscope+ctags

暂记:

1. YouCompleteMe

2. Ack/Ag

4. 技巧补遗

4.1. 小的指令组合

  • xp    调换两个字符

  • deep    调换两个单词(光标开始处于第一个单词的左边)

  • ddp    调换两行

  • 10i=^M [ESC]     连续10次写下“=”和回车(此后,观察“.”“3.”指令的效果)

  • N gU<Enter>     将N行的中的小写字符变为大写(“~”指令变换光标下字符的大小形式,可加个N次,嘿嘿)

  • N gu<Enter>     将N行的中的大写字符变为小写

4.2. 区域选择:<action>a<object> and <action>i<object>

<action>a<object> and <action>i<object>

action能够是任何的命令,如 d (删除), y (拷贝), v (在可视模式下选择)。

object 多是:w 一个单词,W 一个以空格为分隔的单词,s 一个句子,p 一个段落。也能够是特殊字符,如:"、 '、 )、 }、 ]。

假设光标在第一个字母o处, (map (+) ("foo"))

  • vi" → will select foo.

  • va" → will select "foo".

  • vi) → will select "foo".

  • va) → will select ("foo").

  • v2i) → will select map (+) ("foo")

  • v2a) → will select (map (+) ("foo"))

效果见下图

     

4.3 选择矩形区域:<C-v>

给多行代码添加注释时会颇有用。例如:0<C-v><C-d>I-- [ESC]

  • ^ → go to the first non-blank character of the line

  • <C-v> → Start block selection

  • <C-d> → move down (could also be jjj or %, etc…)

  • I-- [ESC] → write -- to comment each line

演示效果以下图所示(如下几张动态图来自原做者):

       

4.4 宏录制:qa

qa 将你的动做录制到寄存器a中。@a 播放寄存器a中的宏。@@是快捷方式,用来播放上一个执行过的宏。

       

效果以下:

       

4.5 可视化选择:v,V,<C-v>

以<C-v>为例,v 和 V 相似。在可视化下选中内容后,你能够

  • J → join all the lines together.

  • < (resp. >) → indent to the left (resp. to the right).

  • = → auto indent

在全部被选中行的末尾添加内容。

  • <C-v>

  • go to desired line (jjj or <C-d> or /pattern or % etc…)

  • $ go to the end of the line

  • A, write text, ESC.

操做及效果演示以下:

      

5. 其余

当运行vi或者vim时,报告以下错误:
    vim: error while loading shared LIBraries: LIBperl.so: cannot open shared object file: No such file or directory

解决方案:出现相似错误是因为缺乏相关的库文件(*.so文件)形成的,可能的缘由是版本不匹配或者没有安装相应的RPM文件。

使用ldd命令确认某程序执行须要哪些动态连接库

[root@UFO]# ldd /usr/bin/vim

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息