• Gvim常用命令


    这是一篇较全的vim命令。特记录下来,有稍作修改说明。摘http://hi.baidu.com/ui176/item/b00ae7c0eeaba52847d5c0c5
    Vim常用命令
    跳到指定的行号:
    在命令行下直接输入:行号
    比如跳到500行,输入:500即可
    整体缩进的操作:
    在命令行模式下,按住shift+v进入可视行选择状态,使用shift加上下左右方向键选择好整体的代码块,然后再按住shift+>或者shift+< 向右或者向左缩进即可整体缩进。 Vim多行缩进技巧 首先进入命令状态,然后按v进入visual状态,一定要在可视状态,选择多行()注意这里的选择可不是用鼠标选择,而是使用shift+方向键进行选择,用>或<缩进或缩出
    gvim 查找之后结果的高亮如何关闭?
    :noh
     
    显示菜单栏;set go=menu;
    不显示菜单;set go=;
    显示底部滚动条:set go+=b;
    显示右侧和底部滚动条:set go+=rb;
    智能补全;ctrl+x 后再ctrl+o或者ctrl+p;
    vim在插入状态下按ctrl+p键就会显示你曾经输入过的字符
    「将当前光标下的列高亮」——:set cuc
     
    光标移动:
    w    :光标以单词向前移动 nw:光标向前移动n个单词光标到单词的第一个字母上
    b    :与w相反
    ^    :移动光标到行首第一个非空字符上去
    $    :移动光标到行尾第一个非空字符上去
    %    :移动到与制匹配的括号上去(),{},[],<>等。
    nG    :跳转到第n行。
     
    可视模式
    v        :可视模式
    V        :选择行
    CTRL-V or CTRL-Q    :选择块
     
    文本操作
    y    :复制选择的内容
    ye    :复制一个单词
    yy    :复制一行
    p    :粘贴
    x    :可视模式下,x为剪切选择内容
    viw    :选中光标当前所在处的单词
    yiw    :复制光标当前所在处的单词
     
    4.vi 编辑器的插入命令:
    i 在光标处插入正文
    I 在一行开始前插入正文
    a 在光标后追加正文
    A 在行尾追加正文
    o 在光标下面新增一行
    O 在光标上面先增一行
     
    vi下的复制方法
    方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y’a复制从标记位置a到当前位置的内容。`和’的区别:`以字符为单位,’以行为单位。这个方法应该是所有vi 都适用的。
    选择寄存器复制内容
    这有点复杂.把这节拿出来,多看几遍;还有,一定要多做实验.
    “< 字母>yy可以把一行文本拷贝到寄存器中(这里的寄存器是vi的术语,指可以存放剪切和拷贝下来的东西的地方), <字母>里面的字母必须是a到z之间的一个. “<字母>dd可以把 一行剪切下来放到寄存器里面. 你可以在yy或者dd前面用数字指明要拷贝或者剪切的行数.如果<字母>中的字母是大写的话,意味着把文本插入到寄存器中已有的文本之前. “<字母>p把文本插入到光标之后,”<字母>P把文本插入到光标之前.如果寄存器中含有某一行的开头或结尾,这一行将会被放到另一合适的行. Y是yy的快捷方式. 还有, y$, yH, yM,等等,都是可以用的.d命令也是一样的.如果要快速的剪切和粘贴, 你就无须指定寄存器了.如果这样的话,你就不能往寄存器里面添加文本了.而且只要有一个删除命令的话, 寄存器中的东西就没有了(包括x命令). 举例来说,如果要移动上一段的话,你可以把光标移到段落的开头,敲”a13dd,再把光标移到你想要放文本的地方,敲”ap,就可以把那段文本放到光标所在的行后面. 现在,大概你想要剪切和粘贴文本到不是行末尾的区域去.我们 来看如何做到这一点:我们可以使用 m<字母> 命令来标记一个区域,这个字母可以和剪切/粘贴寄存器的字母相,因为它们是保存在内存中的不同位置. 然后, 敲”<寄存器>`<字母>[yy或者dd], 这里的寄存器就是要保存文本的那个寄存器,<字母> 是用来标记的,yy和dd是你的操作.
    ~    :修改光标下字符的大小写,并移动到下一个字符。这不是一个操作符 (除非设置了 ’tildeop’),所以你不能连接一个动作命令。这个命令在可视模式下也有效,它会改变被选中的所有文本的大小写。
    I    :移到当前行的第一个非空字符并启动插入模式
    A    :移动到行尾并启动插入模式
    o    :在当前行的下面另起一行
    O    :在当前行的上面另起一行
    dw    :删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw
    dd    :删除一行
    cw    :修改一个单词
    dtx    :从光标所在处开始,删除到”x”。
    d/text    :删除从文本中出现”text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
    cc    :改变整行
    C$    :改变到行尾
    shift + < 左移一行
    shift + > 右移一行
    <%或>%    :来将{,(或[等符号括起来的文本都左移或右移;这时候,你必须把光标放在这些符号({,(或[)上面.
    u        :undo
    CTRL+R    :re-do
    J        :合并一行
    CTRL+p     :自动完成功能(在输入模式使用)
    CTRL+g    :查看当前文件全路径
    :n1,n2 co n3         :将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。
    :n1,n2 m m3         :将 n1 行到 n2 行之间的内容移至第 n3 行下。
    :n1,n2 d             :将 n1 行到 n2 行之间的内容删除。
    :n1,n2 w filename     :将 n1 行到 n2 行之间的内容保存到文件 filename 中
    使用剪贴板
    "*y    :将内容复制到剪贴板
    "*p    :将剪贴板的内容粘贴出来
    存盘:
    :q!         :不存盘退出
    :e!         :放弃修改文件内容,重新载入该文件编辑
    :wq         :存盘退出
    :w            :存盘
    :browse o    :用浏览器打开文件
    :browse w    :用浏览器保存文件
    :wqa        :保存并关闭所有文件
    :qa            :关闭所有文件
    :browse wa    :用浏览器保存所有文件
    u: 撤销前一次的操作
    ZZ:保存当前文档并退出VIM
    帮助
    :help             :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O 返回。
    :help subject     :看某一主题的帮助,ZZ 退出帮助
    :help {主题}    :例如,要获得 “x” 命令的帮助,输入如下命令:
    :help x
    :help CTRL-A
    查找
    fx             :移动到一个指定的字符,单字符查找命令是最有用的移动命令之一。”fx” 命令向前查找本行中的字符 x。提示:”f” 表示 “Find”。
    /pattern    :正方向搜索一个字符模式
    ?pattern     :反方向搜索一个字符模式
    然后按n 继续向下找
    精确查找整个单词    :如果你输入 “/the”,你也可能找到 “there”。要找到以 “the” 结尾的单词,可以用:
    /the>
    “>” 是一个特殊的记号,表示只匹配单词末尾。类似地,”<” 只匹配单词的开头。 这样,要匹配一个完整的单词 “the”,只需:
    /<the>
    把光标放到某个单词上面,然后按*号键,表示查找这个单词。”#” 命令在反向完成相同的功能。
    查找整个单词:/<word>
    :set hlsearch         :高亮显示查找到的单词
    :set nohlsearch     :关闭改功能
    查找替换:
    way1:
    /【word】 :查找某个word
    ? 命令功能与 “/” 的功能类似,但是是反方向查找
    cw【newword】:替换为新word
    n: 继续查找
    .: 执行替换
    way2:
    :s/string1/string2/g:在一行中将string1替换为string2,g表示执行用c表示需要确认
    :num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2
    :1,$ s/string1/string2/g:在全文中将string1替换为string2
    如果替换时需要确认,在g后面加上一个c(confirm)
    如果要全文搜索,在”s/”前面加上一个%,例如”:% s/”
    书签
    m[a-z]    :在文中做标记,标记号可为a-z的26个字母,用`a可以移动到标记a处
    “        :最后编辑的位置
    :marks    :你可以用如下命令取得所有的标记的列表:
    r:替换当前字符
    nr字符:替换当前n个字符
    分割窗口
    :split            :分割一个窗口
    :split file.c     :为另一个文件file.c分隔窗口
    :nsplit file.c    :为另一个文件file.c分隔窗口,并指定其行数
    CTRL+W            :在窗口中切换
    :close            :关闭当前窗口
    写文件
    :n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去
    宏命令
    q[a-z] 开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏。
    用reg显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z].
    设置
    前提操作:如果你不知道你的 vimrc 在什么地方,可以使用如下命令
    :scriptnames                :确认设置文件的路径。
    :set nocompatible            :与Vi兼容
    :set ruler                    :总在 Vim 窗口的右下角显示当前光标位置。
    :set showcmd                :在 Vim 窗口右下角,标尺的右边显示未完成的命令。例如,当你输入 “2f”,Vim 在等你输入要查找的字符并且显示 “2f”。当你再输入w,”2fw” 命令被执行,”2f” 自动消失。
    :set incsearch                :在查找模式输入完前显示匹配点。
    :map Q gq                     :这定义一个键映射。下一节会介绍更多的相关内容。这将定义 “Q” 命令用来完成与 “gq” 操作符相同的功能,这是在 Vim 5.0 版前 “Q” 命令的作用。如果没有设置这个映射, “Q” 会启动 Ex 模式,这也许不是你想要的情况。
    :set number / set nonumber     :显示/不显示行号
    :set ruler /set noruler        :显示/不显示标尺
    :set sy on                    :设置语法高亮
    :set colo {theme}            :设置主题颜色
    :set guifont=Courier_New:h10:cANSI    :设置字体(注意字体名之间的空格用下划线代替)
    :set tabstop=4                        :设置tab键的宽度
    :set nobackup                        :不要备份
    :set nowritebackup                    :不要备份
    au GUIEnter * simalt ~                :界面最大化
    简单键盘映射
    :map    :查看当前系统的键盘映射。
    映射可以使你把一系列 Vim 命令绑定为一个单键。假设你要用一个大括号将一个特定的 单词括起来。例如,把 “amount” 变成 “{amount}”。用 “:map” 命令,就可以让 F5 来 完成这个工作。命令如下:
    :map <F5> i{<Esc>ea}<Esc>
    Note:
    在输入这个命令时,<F5> 要用四个字符表示。相似地,输入 <Esc> 不是直接按 <Esc> 键,而是输入五个字符。在读这份手册要注意这些区别!
    让我们来分解一下这个命令:
    <F5>        F5 功能键。这是命令的触发器。当这个键被按下时,相应的命令即被执行。
    i{<Esc>     插入 { 字符。<Esc> 键用于退出插入模式。
    e           移动到词尾。
    a}<Esc>     插入 } 到单词尾。
    执行 “:map” 命令后,要在单词两端加上 {},只需要移到单词上的第一个字符并按 F5。
    在这个例子中,触发器是一个单键;它还可以是任何字符串。但若你使用一个已经存在 的 Vim 命令,该命令将不在有效。所以你最好避免出现这种情况。一个可用于映射的键是反斜杠。因为你很可能想定义多个映射,那就加上另一个字符。
    你可以映射 “p” 为在单词两端加园括号,而映射 “c” 为加花括号,例如:
    :map p i(<Esc>ea)<Esc>
    :map c i{<Esc>ea}<Esc>
    你需要在敲入后,立即敲入p,以便 Vim 知道它们组成一个命令。
    如果组合键中间有CTRL,就要缩写为C,例如CTRL-Tab要写成<C-Tab>
    常用选项
    Vim 中有很多选项。大部分你很少用得上。我们在这个介绍一些常用的。别忘了你可以 通过 “:help” 命令获得更多的帮助。方法是在选项命令前后加上单引号,例如:
    :help ‘wrap’
    如果你搞乱了一个选项,你可以通过在选项后加上一个 & 号把它恢复到默认值。例如:
    :set iskeyword&
    禁止折行
    Vim 通常会对长行自动换行,以便你可以看见所有的文字。但有时最好还是能让文字在一行中显示完。这样,你需要左右移动才能看到一整行。以下命令可以切换换行方式:
    :set nowrap
    当你移到到那些不能显示的文字上,Vim 会自动向右滚动让你看到后面的文字,要一次滚 动十个字符,这样就行了:
    :set sidescroll=10
    这个命令不改变文件中的文字,只改变显示方式。
    Tab操作
    tabs            :查看当前打开的tab的文件路径。
    tabnew            :新建tab。
    tabnext,gt        :切换到下一个tab。
    tabprevious,gT    :切换到上一个tab。
    tabclose        :关闭当前tab。
    tabfirst        :切换到第一个tab。
    tablast            :切换到最后一个tab。
    tabrewind        :切换到上一个激活过的tab。
    批量注释
    移动光标到需要注释掉的第一行开头,然后按Ctrl-v(如果使用了VIM的mswin.vim,则Ctrl-v表示粘贴,这时需要用Ctrl-q代替)进入Visual blockwise模式,这个模式是Visual mode的一种,相当于UltraEdit中的块选择。然后按j选择上所有需要注释行的行首(看起来效果是选择了第一列),输入I//再按ESC就可以在每一行开头插入//了。
    折叠文本
    zf    :折叠你选中的文本。
    zd    :展开你光标所在处的折叠文本。
    zD    :展开所有折叠的文本。
    缩写
    VI/VIM支持用一个缩写字符串代替一个长的字符串,比如 :ab hw hello world, 然后在Insert mode下输入“hw ”(不包括引号)后VIM就自动替换成了“hello world”。
    制作帮助
    把帮助文件放到vimvim~doc文件夹中
    文件必须是.txt文件,文件首必须是”*filename*”,例如:*usual_command.txt*
    在文件中添加关键字,例如”*usual*”,然后在Vim中通过:help usual打开帮助文件
    这里注意:要想使你的帮助文件立刻生效,请先执行这条命令:
    helptags E:Program FilesVimvim73doc     即刷新你的vim的帮助文件所在的目录,将你制作的帮助文件加入到helptags,要不你再vim里
    执行:help usual_command ,就会提示找不到文件说明。
     还有注意帮助文件的字符编码,编码不匹配就会使乱码。
    //在vim中,执行:helptags ~vimdoc
  • 相关阅读:
    hdu-2841 Visible Trees---容斥定理
    hdu-4135 Co-prime---容斥定理经典&&求1-m中与n互质的数目
    hdu-1796 How many integers can you find---容斥定理
    hdu-2837 Calculation---指数循环节
    FZU-1759 Super A^B mod C---欧拉降幂&指数循环节
    指数循环节&欧拉降幂
    hdu-3074 Multiply game---线段树+单点更新
    hdu-1792 A New Change Problem---数论&剩余系
    POJ-2429 GCD & LCM Inverse---给出gcd和lcm求原来两个数
    hdu-2685 I won't tell you this is about number theory---gcd和快速幂的性质
  • 原文地址:https://www.cnblogs.com/david-wei0810/p/6138086.html
Copyright © 2020-2023  润新知