• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    5年前 (2013-05-20)  Linux |   16 条评论  5 
    文章评分 0 次,平均分 0.0

    一、向前移动一个词
    w 3w b 2b (向前移动一个词 / 向前移动三个词 / 前后移动一个词 / 向后移动二个词)
    e (移动到一个个单词词末) ge(移动到前一个单词末尾)
    移动词的命令包括:w / W / e / E / b / B / ge / gE
    二、移动到行首或行尾
    "$" 命令把光标移动到当前行行尾。"^" 命令把光标移动到一行的第一个非空字符,而 "0" 命令则移到一行的第一个字符,
    三、移动到一个指定的字符
    单字符查找命令是最有用的移动命令之一。"fx" 命令向前查找本行中的字符 x。
    可以在这个命令前面加计数前缀,所以,可以用 "3fl"
    "F" 命令用于向左查找:
    "tx" 命令与 "fx" 相似,但它只把光标移动到目标字符的前一个字符上。
    四.移动到指定行:
    "33G" 把你送到 33 行
    "G" 命令把光标移动到文件末。移动到文件首的命令是 "gg"。
    "50%" 移动到文件的中间,而 "90%" 移到差不多结尾的位置。
    "H" 表示 "Home" (头)移动到屏幕上方,"M" 表示 "Middle" (中)移动到屏幕中间 而 "L" 表示 "Last" (尾)移动到屏幕下方。
    五、滚屏
    CTRL-U 命令向下滚动半屏 CTRL-D 命令把视窗向下移动半屏
    每次滚一行的命令是 CTRL-E (上滚) 和 CTRL-Y (下滚)。

    设置vim的选项
    如果每次用 Vim 都要设置一些选项,如是否大小写匹配,显示行号.那么,你可以把这些命令写到Vim 的启动文件中。
    用:scriptnames来查找vim启动文件在什么地方.
    然后:edit ~/.vimrc
    在这个文件中就可以设置一些选项了.

    vim中使用标记
    一、当你用 "G" 命令跳到另一个地方,Vim 会记住你从什么地方跳过去的。这个位置成为一个标记,要回到原来的地方,使用如下命令:``
    `` 命令可以在两个位置上跳来跳去。而 CTRL-O 命令则跳到一个 "较老" 的地方 (提示: O 表示 older)。CTRL-I 则跳到一个 "较新" 的地方
    :jumps 命令能输出一个你可以跳往的位置的列表。最后一个你使用的标记会用 ">" 符号标记出来。
    二、Vim 允许你在文本中放置自定义的标记。命令 "ma" 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记 (a 到 z)。这些标记是不可见的,只是一个由 Vim 记住的位置。
    要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记 a 的命令是: `a
    三、你可以用如下命令取得所有的标记的列表::marks
    到有一些特殊的标记,包括:
    ' 跳转前的光标位置
    " 最后编辑的光标位置
    [ 最后修改的开始位置
    ] 最后修改的结束位置

    vim中的操作符与动作

    一、 操作符-动作模式
    "dw" 命令删除一个单词。你可能认出来了,"w" 是词移动命令。实际上,"d" 命令后面可以跟任何 "动作" (motion) 命令,它会删除从当前位置到光标移动到的目标位置的全部内容。
    以上定义了一个命令组合模式:操作符-动作。你首先输入一个操作符命令,例如,"d"就是一个删除操作符。然后你输入一个动作命令,例如 "4l" 或者 "w"。这种方法使你可以在任何你能越过的文本上执行各种操作。
    另一个操作符命令是 "c",表示修改,change。它的作用方式与 "d" 操作符相似,只是完成后会切换到插入模式。例如,"cw" 修改一个词,更精确的说,它删除一个词,并切换到插入模式。
    To err is human
    ------->
    c2wbe
    To be human
    这里 "c2wbe" 包括如下操作:
    c 修改操作符
    2w 移动两个单词的距离 (与操作符合起来,它删除两个单词并进入插入模式)
    be 插入 be 这个单词
    二、更 多 的 修 改 命 令
    像 "dd" 可以删除一行一样,"cc" 修改一整行。但它会保留这一行的缩进 (前导空格)。
    "d$" 删除到行尾;"c$" 则修改到行尾。

    命令 "3dw" 和 "d3w" 都是删除 3 个单词。如果你非要寻根问底,那么:"3dw" 表示删除一个单词 3 次,而 "d3w" 表示删除三个单词一次。这是一个没有分别的分别。实际上你可以放两个计数前缀,例如,"3d2w" 删除两个单词三次,共计六个单词。
    三、重复一个修改
    "." 是 Vim 中一个非常简单而有用的命令。它重复最后一次的修改操作。例如,假设你在编辑一个 HTML 文件,你想删除所有的 标记。你把光标移到第一个 "<" 上,然后用 "df>" 命令删除 。然后你就可以移到 的 < 上面用 "." 命令删除它。"." 命令执行最后一次的修改命令 (在本例中,就是 "df>")。要删除下一个 标记,移动到下一个 < 的位置,再执行 "." 命令即可。 To generate a table of contents
    f< 找第一个 < --->
    df> 删除到 > -->
    f< 找下一个 < --------->
    . 重复 df> --->
    f< 找下一个 < ------------->
    . 重复 df > -->

    "." 命令重复任何除 "u" (撤销),CTRL-R (重做) 和冒号命令外的修改。
    再举一个例子:你想把 "four" 修改成 "five"。有好几个地方都要作这种修改。你可以
    用如下命令快速完成这个操作:

    /four 找到第一个 "four"
    cwfive 修改成 "five"
    n 找下一个 "four"
    . 重复修改操作
    n 找下一个 "four"
    . 重复修改
    如此类推......
    四、可视模式
    要删除一些简单的东西,用 "操作符-动作" 命令可以完成得很好。但很多情况下,并不容易确定用什么命令可以移到你想修改的地方。这时候,你就需要可视模式了。
    你可以用 "v" 命令启动可视模式。你可以移动光标到需要的地方。当你这样做的时候,中间的文本会被高亮显示。最后执行一下 "操作符" 命令即可。
    按 行 选 择
    如果你想对整行做操作,可以使用 "V" 命令来启动可视模式。你会发现在你作任何移动之前,整行都被高亮显示了。左右移动不会有任何效果。而通过上下移动,你可以一次选择多行。
    例如,用 "Vjj" 可以选中三行:

    vim中的拷贝

    一、copy and past
    要把文本从一个地方拷贝到另一个地方,你可以先删除它,然后用 "u" 命令恢复,再用"p" 拷到另一个地方。这里还有一种简单的办法:抽出 (yank)。"y" 命令可以把文字拷贝到寄存器中。然后用 "p" 命令粘贴到别处。
    yanking 是 Vim 中拷贝命令的名字。由于 "c" 已经被用于表示 change 了,所以拷贝 (copy) 就不能再用 "c" 了。但 "y" 还是可用的。把这个命令称为 "yanking" 是为了更容易记住 "y" 这个键。
    由于 "y" 是一个操作符,所以 "yw" 命令就是拷贝一个单词了。当然了,计数前缀也是有效的。要拷贝两个单词,就可以用 "y2w"
    "yy" 命令拷贝一整行,就像 "dd" 删除一整行一样。出乎意料地是,"D" 删除到行尾而"Y" 却是拷贝一整行。要注意这个区别!"y$" 拷贝到行尾。
    从剪贴板中copy和粘贴:
    要拷贝一行到剪贴板中: "*yy
    要粘贴回来: "*p
    以上仅在支持剪贴板的 Vim 版本中才能工作。更多的见:http://vcd.gro.clinux.org/doc/usr_09.html#09.3

    vim中的文本对象

    一、关于文本对象:
    文本对象是作为一个整体来处理的。现在光标在对象中的位置无关紧要。
    比如:aw 就代表光标所在处的一个文本对象,它是一个单词.如:
    "daw" 的 "d" 是删除操作符。"aw" 是一个文本对象。提示:"aw" 表示 "A Word" (一个单词),这样,"daw" 就是 "Delete A Word" (删除一个单词)。
    is表示inner sentence,表示光标所在的那行
    "cis" 包括 "c" (change,修改) 操作符和 "is" 文本对象。这表示 "Inner Sentence"(内含句子)。还有一个文本对象是 "as",区别是 "as" 包括句子后面的空白字符而 "is"不包括。如果你要删除一个句子,而且你还想同时删除句子后面空白字符,就用 "das";如果你想保留空白字符而替换一个句子,则使用 "cis"。
    你还可以在可视模式下使用文本对象。这样会选中一个文本对象,而且继续留在可视模式,你可以继续多次执行文本对象命令。例如,先用 "v" 启动可视模式,再用 "as" 就可以选中一个句子。现在重复执行 "as",就会继续选中更多的句子。最后你可以使用一个操作符去处理这些被选中的句子。
    详细的文本对象可见http://vcd.gro.clinux.org/doc/motion.html#text-objects:

    简单键盘映射

    一、map命令:
    映射可以使你把一系列 Vim 命令绑定为一个单独的键。假设你要用一个大括号将一个特
    定的单词括起来。例如,把 "amount" 变成 "{amount}"。用 ":map" 命令,就可以让 F5
    来完成这个工作。命令如下:
    :map i{ea}
    在输入这个命令时, 要用四个字符表示。相似地,输入 不是直接按 键,而是输入五个字符。
    比如,在写cpp文件时,用键自动插入{},可以这样键盘映射:
    :map i{}ki
    再举一例,键盘映射\i这个命令自动为单词加上(),可以:
    :map \i bi(ea)
    有了map命令,可以把常用到的命令作为键盘映射,用得时候直接调用快捷键即可.

    还有一种map命令,对于可视模式的:vmap
    如,给选中的文本加上标签,快捷键为Ctrl+S
    :vmap cpa
    或者::vmap s //其中"表示寄存器"
    取消键盘映射:vunmap

    一些其它命令:

    *:读取光标处的字符串,并且移动光标到它再次出现的地方。
    #:和上面的类似,但是是往反方向寻找。
    i:在当前字符的左边插入
    I:在当前行首插入
    a:在当前字符的右边插入
    A:在当前行尾插入
    o:在当前行下面插入一个新行
    O:在当前行上面插入一个新行
    VIM 有一个非常漂亮的关键词自动完成系统。这表示,你可以输入一个长词的一部分,然后按一下某个键,然后 VIM 就替你完成了这个长词的输入了。举个例子:你有一个变量名为 iAmALongAndAwkwardVarName 在你写的代码的某个地方。也许你不想每回都自己一个一个字母的去输入它。
    使用关键词自动完成功能,你只需要输入开始几个字母(比如 iAmAL),然后按 (按住 Ctrl,再按 N)或者 。如果 VIM 没有给出你想要的词,继续按,直到你满意为止,VIM 会一直循环它找到的匹配的字符串。

    用 VIM 写代码

    p:和 p 的功能差不多,但是它会自动调整被粘贴的文本的缩进去适应当前代码的位置。试一下!
    %:匹配花括号、方括号、括号等。在一个括号的上面,然后按 %,鼠标就会出现在匹配的另外一半括号处。
    >>:缩进所有选择的代码
    <<:和上面类似,但是反缩进 gd:到达光标所在处函数或者变量的定义处。 K:在 Man 里面查找光标当前所在处的词。 显示Tab键: 文件中有 TAB 键的时候,你是看不见的。要把它显示出来: :set list 控制Tab的显示样式: :set listchars=tab:>-,现在,TAB 会被显示成 ">---"
    :set listchars=tab:-. 现在,TAB 会被显示成 "-..."
    以上以此类推,Tab的显示样式需要两个符号来控制.
    设置详细的listchars可以详见:help 'listchars

    设置文件的类别:

    set filetype=cpp / set ft=perl
    设置语法高亮:
    要在当前缓冲区中使用高亮,需要设置 'syntax' 选项:
    :set syntax=ON
    如果你想只对特定的文件采用语法高亮,可以使用这个命令:
    :syntax manual
    如果你要完全关闭这个功能:
    :syntax off
    使用色彩显示文本会影响效率。如果你觉得显示得很慢,可以临时关掉这个功能:
    :syntax clear

    使用不同颜色

    :colorscheme evening
    "evening" 是色彩方案的名称。还有几种备选方案可以试一下。在 $VIMRUNTIME/colors
    中可以找到这些方案。

     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/1257.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享