vim基础

30 篇文章 0 订阅
26 篇文章 0 订阅

3.21一些补充

  • *(#)  当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的
      下(上)一个单词. 同样, 再输入n 查找下一个匹配处, 输入N 反方向查找.
  • f(F)x 本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符.
       找到后:
             输入; 表示继续往下找
             输入, 表示反方向查找
  • H      移动光标到屏幕的首行.
     M      移动光标到屏幕的中间一行.
     L      移动光标到屏幕的尾行.
    :12,y  表示拷贝第12行到光标所在行之间的内容.
    :,24y  表示拷贝光标所在行到第24行之间的内容. 删除类似.


    :ls    此命令查看本vim 程序已经打开了多少个文件, 在屏幕的最下方
    :b 序号(代号)此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号)

  • 选择 
        { 
             XXXXX 
        } 
        大括号里面的代码:光标移到第一个大括号,先按v进入visual模式,然后%就可以选中这一段代码了。 

  •  按「ctrl」+「b」:屏幕往“后”移动一页。

     按「ctrl」+「f」:屏幕往“前”移动一页

  • 删除包含foo的行   :g/foo/d
    删除不包含foo的行 :g!/foo/d

  •  多标签编辑
    :tabnew filename
    gt gT在标签间进行切换

  • ctrl+a 将光标下的数字加1
    ctrl+x 将光标下数字减1

  • 单字符查找命令是最有用的移动命令之一。"fx" 命令向前查找本行中的字符 x。提示:
    "f" 代表 "Find" (寻找)。
        例如,假定你在下行行首,而想移动到单词 "human" 的 h 那里。执行命令 "fh" 即
    可:
    
            To err is human.  To really foul up you need a computer. 
            ---------->--------------->
                fh           fy
    
    这个例子里同时演示 "fy" 命令移动到了 "really" 的词尾。
        你可以在这个命令前面加计数前缀,所以,你可以用 "3fl" 命令移动到 "foul" 的
    "l":
    
            To err is human.  To really foul up you need a computer. 
                      --------------------->
                               3fl
    
    "F" 命令用于向左查找:
    
            To err is human.  To really foul up you need a computer. 
                      <---------------------
                                Fh
    
    "tx" 命令与 "fx" 相似,但它只把光标移动到目标字符的前一个字符上。提示: "t" 表
    示 "To" (到达)。这个命令的反向版本是 "Tx"。
    
            To err is human.  To really foul up you need a computer. 
                       <------------  ------------->
                            Th              tn
    
    这四个命令可以通过 ";" 命令重复,"," 命令则用于反向重复。无论用哪个命令,光标
    永远都不会移出当前行,哪怕这两行是连续的一个句子。


  • 置位 'ruler' 选项。这会在 Vim 窗口的右下角显示当前光标的位置:
    
            :set ruler
    
    


  • 假设你执行了三个查找命令:
    
            /one
            /two
            /three
    
    现在,让我们输入 "/" 启动一次查找,但先不按下回车键。现在按 <Up> (上箭头),Vim
    把 "/three" 放到你的命令行上。回车就会从当前位置查找 "three"。如果你不回车,继
    续按 <Up>,Vim 转而显示 "/two",而下一次 <Up> 变成 "/one"。
        你还可以用 <Down> 命令在历史记录中反向查找。
    
    如果你知道前面用过的一个模式以什么开头,而且你想再使用这个模式的话,可以在输入
    <Up> 前输入这个开头。继续前面的例子,你可以输入 "/o<Up>",Vim 就会在命令行上
    显示 "/one"。


  • 移 动 到 另 一 端
    
    如果你在可视模式下选中了一些文字,然后你又发现你需要改变被选择的文字的另一端,
    用 "o" 命令即可 (提示: "o" 表示 other end),光标会移动到被选中文字的另一端,现
    在你可以移动光标去改变选中文字的开始点了。再按 "o" 光标还会回到另一端。
    
    当使用列块可视模式的时候,你会有四个角,"o" 只是把你移到对角上。而用 "O" 则能
    移到同一行的另一个角上。
    
    

  • 普通模式命令
    插入模式提供的命令数量有限。在普通模式下,你可用的命令就多得多了。当你要用一个
    普通模式命令时,你通常用 <Esc> 键来脱离插入模式,执行这个普通模式命令,然后再
    用 "i" 或 "a" 命令重新进入插入模式。
       有一个快捷的方法。用 CTRL-O {command} 你可以在插入模式下执行任何普通模式命
    令。例如,把光标后面直至行尾的文本删除:
    
    
            CTRL-O D
    
    
    用这个方法,你只能执行一个普通模式命令。但是,你可以指定一个寄存器或一个计数。
    请看下面这个更复杂的命令:
    
    
            CTRL-O "g3dw
    
    
    这个命令把光标后面三个单词一起删除,存进了寄存器 g。
    
  • 可视模式下的重复
    可视模式在反复修改一段文本方面十分方便。你可以看见高亮的文本,从而确定是否改对 了地方。但选择文本也得打几个字。"gv" 命令再次选择上次选过的文本,让你对同一段 文本再作别的修改。 假定你有几行文本,你要把其中的 "2001" 改成 "2002",以及 "2000" 改成 "2001": The financial results for 2001 are better than for 2000. The income increased by 50%, even though 2001 had more rain than 2000. 2000 2002 income 45,403 66,234 首先把 "2001" 改成 "2002"。在可视模式下选择这几行文本,并执行: :s/2001/2002/g 现在用 "gv" 命令再次选择同一文本。光标在哪儿都没关系。然后用 ":s/2000/2001/g" 命令作第二项修改。 很明显,你可以多次重复这些动作。

  • 增加减少数字
    
    你可以在 CTRL-A 之前附加数字来增加一个大于一的数。假定你有这么个列表:
    
            1. item four 
            2. item five 
            3. item six 
    
    把光标移到 "1." 上并键入:
    
            3 CTRL-A
    
    那个 "1." 就变成了 "4."。同样,你可以用 "." 命令对其它数字重复这项修改。
    
    再看一个例子:
    
            006     foo bar 
            007     foo bar 
    
    在这些数字上执行 CTRL-A 产生了以下结果:
    
            007     foo bar 
            010     foo bar 
    
    7 加 1 等于 10?这是因为 Vim 根据首位出现的 "0" 而误以为 "007" 是个八进位数
    字。这种表示法常用于 C 程序。如果你不要首位为 "0" 的数字被处理成八进位数字,请
    用这个命令:
    
            :set nrformats-=octal
    
    CTRL-X 命令用于减数字,用法与加数字类似。
    
  •  

2.

3.

4.

5.

6.

7.

8.

9.

===================================================================================================================

1.插件文档关联

vim默认读取的帮助文件是/usr/share/vim/vim72/doc下,如果要加载其他目录,可以手动更新一下啊.在 vim 里面用 :helptags ~/.vim/dochelp visualmark.txt 即可打开帮助文档.2."+y 复制到系统剪贴板(也就是vim的+寄存器)   "+p 从系统剪贴板粘贴

3.使用命令计数假设你要向上移动9行。这可以用"kkkkkkkkk"或"9k"来完成。事实上,很多命令都可以接受一个数字作为重复执行同一命令的次数。比如刚才的例子,要在行尾追加三个感叹号,当时用的命令是"a!!!"。另一个办法是用"3a!"命令。3说明该命令将被重复执行3次。同样,删除3个字符可以用"3x"。指定的数字要紧挨在它所要修饰的命令前面。

4.以匹配一个括号为目的移动用命令"%"跳转到与当前光标下的括号相匹配的那一个括号上去。如果当前光标在"("上,它就向前跳转到与它匹配的")"上,如果当前在")"上,它就向后自动跳转到匹配的"("上去.5..查找整个word如果你用"/the"来查找Vim也会匹配到"there"。要查找作为独立单词的"the"使用如下命令:"/the\>"。"\>"是一个特殊的记法,它只匹配一个word的结束处。近似地,"\<"匹配到一个word的开始处。这样查找作为一个word的"the"就可以用:"/\"。

6.操作符命令是"c",改变命令。它的行为与"d"命令类似,不过在命令执行后会进入Insert模式。比如"cw"改变一个word。或者,更准确地说,它删除一个word并让你置身于Insert模式。"cc"命令可以改变整行。不过仍保持原来的缩进。"c$"改变当前光标到行尾的内容。7.编辑另一个文件用命令":edit foo.txt",也可简写为":e foo.txt"。8.更改文件名将现有文件存成新的文件,用命令":sav(eas) move.c"。如果想改变当前正在编辑的文件名,但不想保存该文件,就可以用命令:":f(ile) move.c"。9.为每一个文件打开一个窗口,分割窗口使用"-o"选项可以让Vim为每一个文件打开一个窗口:"vim -o one.txt two.txt three.txt"。

10.页签命令":tabe(dit) thatfile"在一个窗口中打开"thatfile",该窗口占据着整个的Vim显示区域。命令":tab split/new"结果是新建了一个拥有一个窗口的页签。以用"gt"命令在不同的页签间切换。11.要折叠一段代码,可以先选中这些行(别问我怎么选中行),然后输入zf 即可。 要展开某折叠代码,将光标移动到折叠代码处,向左或向右移动光标,或输入 zo 都可以, 如果要再次折叠这些代码,需要将光标移动到这些折叠区域里,然后输入zc。如果需要让光标移动到折叠位置时自动打开折叠,可以设置: :set foldopen=all如果需要让光标移出折叠代码后自动折叠起代码,可以设置: :set foldclose=all12.你可以通过命令:close来关闭这个窗口,也可以使用:q退出当前窗口。当然,如果你打开了太多的窗口,而只想保留当前这个,可以使用:only命令来关闭其他所有的窗口。如果你需要在另外一个窗口里面打开另外一个文件,你可以使用命令:split filename,若你只想打开一个新窗口且什么都不做,那可以使用命令:new来完成。==============================================华丽的分割线 14.7.5更新-=====================================================

1.viminfo

信息文件 viminfo 设计用来储存状态信息:        命令行和模式搜索的历史记录        寄存器内文本        各种文件的标记        缓存器列表        全局变量你每次退出 Vim,它就把此种信息存放在一个文件内。即 viminfo 信息文件。当 Vim 重新启动时,就读取这个信息文件,而那些信息就被还原了。2.重 返 VIM 中 断 处你编辑一个文件到一半,但你得下班去度假了。你退出 Vim 就去享受你的人生,把你那些工作忘得干干净净。两个星期以后你启动 Vim,键入:        '0你正好回到当初离开 Vim 的地方。所以你就把你的工作接着做下去。   你每次退出 Vim,它都创建一个标记。最后那个是 '0。原来那个 '0 所指的位置就成了 '1。而原来那个 '1 就成了 '2,依此类推。而原来的标记 '9 就没了。   要发现标记 '0 至 '9 指向何处,|:marks| 命令很有用。3.重 返 某 文 件如果你想回到最近曾经编辑过的文件,但已经退出过 Vim,有一个稍微复杂的方法。你可以这样看到这些文件的列表:        :oldfiles        1: ~/.viminfo         2: ~/text/resume.txt         3: /tmp/draft 假如你要编辑第二个文件,也就是列表里 "2:" 开始的那个,输入:        :e #<2其它接受文件名参数的命令都能替代这里的 ":e","#<2" 这种形式可以用在 "%" (当前文件名) 和 "#" (轮换文件名) 可以出现的地方。由此,你也可以这样来分割窗口来编辑第三个文件:        :split #<3#<123 这种东西在你要用来编辑文件时毕竟是太麻烦了。幸运的是有个简单点的办法:        :browse oldfiles        1: ~/.viminfo         2: ~/text/resume.txt         3: /tmp/draft         -- More --你可以得到和 |:oldfiles| 相同的文件。如果要编辑 "resume.txt",先按 "q" 停止列表,然后会有提示:        Type number and <Enter> (empty cancels): 输入 "2" 并按 <Enter> 来编辑第二个文件。详见 |:oldfiles|、|v:oldfiles| 和 |c_#<|。

4.使用标记使 用 标 记除了指定行号,(这需要记住并把它敲出来),你还可以使用标记。    在前面的例子中,你可以用标记指出第三章的位置。例如,用 "mt" 标记开头,再用"mb" 标记结尾。然后你就可以用标记表示一个范围 (包括标记的那一行):        :'t,'b

5.可 视 模 式 和 范 围

你可以在可视模式中选中一些行。如果你现在输入 ":" 启动冒号命令模式,你会看到:

        :'<,'>

现在,你可以输入剩下的命令,这个命令的作用范围就是可视模式中指定的范围。

        备注:
        如果使用可视模式选中行的一部分,或者用 CTRL-V 选中一个文本列块,然后执
        行冒号命令,命令仍作用于整行,而不只是选中的范围。这可能会在以后的版本
        中修正。

'< 和 '> 实际上是标记,分别标识可视模式的开始和结尾。这个标记一直有效,直到选
中了其它的范围为止。你还可以用标记跳转命令 "'<" 跳转到选中文本的开始处。你还可
以把这个标记和其它标记混合,例如:

        :'>,$

这表示从选中部分的结尾到文件末。


6.指 定 行 数

如果你知道要修改多少行,你可以先输入一个数值再输入冒号。例如,如果你输入
"5:",你会得到:

        :.,.+4

现在你可以继续你的命令,这个命令将作用于当前行及其后 4 行。

7.插入模式下的删除

v在"插入模式"下删除光标到行尾的字符,^od$,^o 表示同时按住 Ctrl 和 O 键,其实也可以是^oD,还有就是如果要删除到某个字符位置的话,就用^odfx,x表示要删除到的字符

8.移动物理行

gj gk 分别可以向下、向上移动一个物理行

9.编辑模式下的ctrl+R

Ctrl+R 是在编辑时或者命令行界面下调入寄存器值的热键,Ctrl+R+/ 会得到上一次查询的条件,Ctrl+R+<寄存器名>; 相当于 Normal 模式下的 "<寄存器名>;p 命令

======================分割线======================================== 7.12号补充

x    删除光标下的字符 ("dl" 的缩写)
X    删除光标前的字符 ("dh" 的缩写)
D    从当前位置删除到行尾 ("d$" 的缩写)
dw    从当前位置删除到下一个单词开头
db    从当前位置删除到前一个单词的开头
diw    删除光标上的单词 (不包括空白字符)
daw    删除光标上的单词 (包括空白字符)
dG    删除到文件末
dgg    删除到文件首

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anssummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值