zoukankan      html  css  js  c++  java
  • vim语法

    在任何目录输入命令“vim <文件名>”就可以使用vim编辑文件了。 打开vim后,默认的是命令模式,输入i进入编辑模式,这个时候你可以编辑文件了。
    在编辑模式下按Esc键回到命令模式,在命令模式输入:q ! (:wq) 命令就可以(保存修改)退出了。

    命令模式常用命令:
    k:向上
    j:向下
    h:向左
    l:向右
    w:下一个单词
    b:上一个单词
    e:单词尾部
    a:追加输入,并进入编辑模式,一般 r:替换当前字符为
    R:进入替换型输入方式,按Esc退出。
    cw:替换单词,进入编辑模式。
    x:剪切字符
    dd:剪切行
    D:剪切当前位置到行尾
    yy:复制一行
    p:粘贴
    v:选择文本区域,之后可以移动光标改变选择范围,也可以使用y、x、r命令复制、删除 3.2 列模式

    在命令模式下,按ctrl+v命令进入列选择模式,列选择模式同v命令的选择模式一样,同时它还可以输入I命令对选择的区域每行都插入一样的内容。

    3.3 查找 命令模式下的查找命令:
    /<word>:查找下一个<word>,之后可以使用n(N)命令向下(上)查找
    ?<word>:查找上一个<word>,之后可以使用n(N)命令向下(上)查找
    *:查找光标所在单词下一处
    <word>可以是任何正则表达式,用点(.)匹配任意单个字符,用星*表示匹配零或多个任意字符。如(/a*b)可以查找匹配ab、aab 下面是介绍几个常用的情况:
    /^abc:找到以abc开头的行
    /efg$:查找已efg结尾的行
    /s+:查找一个或多个空白处,

    vim的替换语法为:[addr]s/源字符串/目的字符串/[option]。[addr] 表示检索范围,默认是当前行,%表示整个文件,使用 v命令选中区域后输入冒号可以实现自定义范围;源字符串可以使用通配符,查找功能原理一样;[option]是操作类型,g 表示全局替换,c 表示进行确认。
    下面是一些常用的例子:
    在每行的开始插入>
    :%s/^/>/g
    删除空行。
    :%s/^$/ /g
    删除所有的[
    :%s/[//g
    将That or this 换成 This or that
    :%s/(That) or (this)/u2 or l1/

    提示:输入/或者:命令然后再按上下方向键,可以查看历史命令

    3.4 多文件操作

    在使用vim命令时,后面可以加多个文件名。这时vim首先显示的是第一个文件。在命令模式下输入:n(N)命令可以切换到下(上)一个文件,使用ctrl+g可以查看当前打开的文件名,输入:qa退出所有的文件。
    如果想在一个页面上看到多个文件内容,可以使用分屏,这样很方便让我们交互式操作。

    在vim命令模式下输入:sp(:vsp) [文件名],可以进行水平(垂直)分屏。之后输入wk(j、h、l)命令可以上(下、左、右)切换窗口。输入:q可以关闭窗口。

    3.5 资源管理器

    如果我们打开的文件被其他程序修改了,可以使用:e命令来刷新文件内容。使用:e [文件名]可以关闭当前文件同时打开指定的文件。 使用:E命令可以打开当前文件所在目录。这个类似Windows的资源管理器。

    当打开的是文件目录时,可以通过s命令修改文件排序方式,同时将光标移到指定文件后输入Enter键即可打开它。

    对于开发者来说,希望可以看到一个程序的函数名列表,这是需要通过taglist插件来实现。
    使用方法如下:
    1) 先到官方网站下载插件:
    http://www.vim.org/scripts/script.php?script_id=273
    2) 将下载的文件解压到$HOME/.vim目录下。

    $HOME/.vim> unzip taglist_46.zip

    3)设置并激活
    在.vimrc文件修改下面配置:

    let TlistCtagsCmd="/lincapp/aixdev/ctags/bin/ctags"

    其中/lincapp/aixdev/ctags是第一步ctags安装时指定的路径。
    进入HOME/.vim目录运行vim,执行命令(:helptags .)后退出。

    此时就配置好了,打开一个程序文件,按F2命令,即可显示、隐藏函数定义表了。

    3.6 代码折叠

    在查看源代码时,将光标移至括号(大、中、小括号 3.7 函数定义跳转

    我们阅读代码时希望能跳转到被调函数的定义处。实现这个功能需要使用第一步安装ctags工具对代码库生成tags文件,方法如下:

    /home/aixdev/ctags/bin/ctags -RB -f ~/leman/tags ~/rinetd/

    -f用来指定生成的tags文件名,用户可以任何自行修改。最后一个参数指定代码库的主目录(为了能在任何地方都可以跳转,这里建议写绝对路径)。
    生成完tags文件后需要修改.vimrc中的tags设置:

    :set tags=~/leman/tags "这里修改为你自己的tags文件名

    现在就可以在vim里面使用跳转了,将光标移至函数处,输入ctrl+]命令进入函数定义,输入ctrl+t退到上一层调用。如果修改代码后导致跳转位置不准了,可以通过重建tags文件来校正。

    3.8 代码自动补全

    在编辑模式下,当我们输入变量名或者函数名一部分时,可以输入ctrl+p(n)实现自动补全,vim自动搜索上(下)文类似的单词,如果未找到再尝试到 tags文件中找你想要的变量。如果有多个满足的内容,会显示一个列表,这时用户可以继续输入ctrl+p(n)来选择上(下)一个。

    3.9 文件比较

    使用vim比较文件的命令为vim -od 。参数-o表示水平分屏,默认是垂直分屏。

    如上题,品红色表示本行有差异,红色部分标识了差异的地方。为了能看到全行的内容,可以输入:set wrap命令来展开,同样使用:set nowrap可以隐藏。

    3.10 其他

    1)调用外部命令。 如果想使用vim调用shell命令,可以在命令模式下输入:! <shell命令>实现。如查看当前所在目录可使用::!pwd


    2)二进制模式查看编辑。 如果vim打开的文件中含有不可见字符,而你又想查看这些不可见字符的二进制数据,这是可以通过:%!xxd -g1命令进入二进制模式查看,进入后可以编辑二进制数据,之后通过:%!xxd -g1 -r命令返回正常模式保存。

    第四章:高级用法。

    4.1 Linux命令模式:Vim filename

    一次移动一个光标

    h        j              k          l

    左       下             上         右

    行内移动

    0        到行首         d0或d^    删除至行首

    $        至行尾         d$         删除至行尾

    0=HOME    到行首        $=end      至行尾

    G         到文件尾      50G        到50行

    gg        到文件首

    有小d/大D都是剪切

    dd         剪掉当前行

    5dd        剪掉当前行起共5行

    D          剪空当前行

    x          删除一个字母    

    dw         除一个单词          del  word

    u         一次撤一行中的一个动作

    U         撤消一行中的所有动作    undo

    多行时小u比大U管用

    yy        复制当前行

    5yy       复制5行

    p         粘    paste

    ZZ        保存退出

    ZQ        不保存退出

    vim中大小写转化:~或u或U

    1、整篇文章大写转化为小写:gg到文件首→guG

    gu=把选定范围全部小写

    G=到文件结束

    2、整篇文章小写转化为大写:gg到文件首→gUG

    gU=把选定范围全部大写

    G=到文件结束

    4.2 命令模式→输入模式:按ins/a/A/i/I/o/O/r/R

    o           在光标下加一空行并进入插入模式

    O           在光标上开一空行并进入插入模式

    r           替换一个字符   

    R           连续替换多个字符

    文件内容查找:

    操作键      功能

    /word       从上而下在文件中查找字符串“word”

    ?word       从下而上在文件中查找字符串“word”

    n            定位下一个匹配的被查找字符串

    N            定位上一个匹配的被查找字符串

    命令模式→Visual Block:按ctrl+v,举例:选中多行并添加注释

    #vim→^v→I→#→ESC

    #vim→set nu→^v→(100G:当前行到第100行)→I→#→ESC

    4.3 命令模式→末行模式:按冒号

    默认情况下Vim的搜索是大小写敏感的,:

    :set ignorecase          忽略大小写

    :set noignorecase        不忽略大小写

    :set nu或:set number     设置显示行号

    :set nonu或:set nonumber 不显示行号

    :999              移动光标到第999行

    有彩色或无彩色

    :syntax clear或:set syntax=off暂时关闭语法高亮

    :syntax enable    当前缓冲区打开语法高亮功能。

    :w                存盘不退出

    :w!               暴力存盘不退出

    :w file1          另存为file1

     

    :q                无脏数据时正常退出

    :q!               放弃脏数据并退出

     

    :wq               正常保存并退出

    :wq!              暴力存盘并退出

    文件内容替换

    命令  功能

    :s /old/new     当前行中找到的第一个old 替换为new

    :s /old/new/g     当前行中查找到的所有old 替换为new

    :#,# s/old/new/g    行号“#,#”范围内替换所有的old为new

    :% s/old/new/g  整个文件范围内替换所有的old为new

    :s /old/new/c    c命令:将对每个替换动作提示用户进行确认

    文件加密与解密

    vim t.c         打开一文件

    :X             据提示操作//加密

    :wq             保存退出

     

    文件解密

    vim t.c         打开文件

    :set key=      解密

    :wq            保存退出

    查看vim帮助

     

    4.4 典型故障现象

    一般是非正常关闭VI导致的,解决办法如下:

    #rm .install.log

    结尾:

    下面是一个高手总结VIM的用法:

     
     
    标签: vimvi
  • 相关阅读:
    LeetCode120 Triangle
    LeetCode119 Pascal's Triangle II
    LeetCode118 Pascal's Triangle
    LeetCode115 Distinct Subsequences
    LeetCode114 Flatten Binary Tree to Linked List
    LeetCode113 Path Sum II
    LeetCode112 Path Sum
    LeetCode111 Minimum Depth of Binary Tree
    Windows下搭建PHP开发环境-WEB服务器
    如何发布可用于azure的镜像文件
  • 原文地址:https://www.cnblogs.com/duanlinxiao/p/10778659.html
Copyright © 2011-2022 走看看