zoukankan      html  css  js  c++  java
  • [Linux] VIM 常用快捷键

    标签
        * :tabnew 打开新标签页.
        * :tabe <file> 在新标签页打开文件.
        * <ctrl> + PageUp, PageDown 切换标签页.
        * :tabnext, tabprev 切换标签页,Putty 下只能用这个.
    文件
        * :e <file> 打开文件.
        * :enew 新文件.
        * :w 保存.
        * :wa 全部保存.
        * :w <file> 另存为.
        * :wq 保存并退出.
        * :x 保存并退出.
        * :q 退出.
        * :qa 全部退出.
        * :q! 强制退出.
    文本
        * esc 切换命令模式 (距离太遥远了,用 Ctrl+C 代替吧).
        * i 插入模式.
        * I 在当前行开头插入.
        * R 替换模式.
        * a 在光标后插入.
        * A 在当前行尾部插入.
        * v Visual 模式按字符选择.
        * V Visual 模式按行选择.
    光标
        * h 左移光标.
        * j 下移光标.
        * k 上移光标.
        * l 右移光标.

    fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。

    tx:和上面的命令类似,但是是移动到 x 的左边一个位置。

    Fx:和 fx 类似,不过是往回找。

    w:光标往前移动一个词。

    b:光标往后移动一个词。

    0:移动光标到当前行首。

    ^:移动光标到当前行的第一个字母位置。

    $:移动光标到行尾。

    ):移动光标到下一个句子。

    ( :移动光标到上一个句子。

        * gg 将光标移到文件头部.
        * G 将光标移到文件尾部.
        * #G 移动光标到指定行#. 例如: 5G
    编辑
        * u 撤销.
        * . 重做.
        * dd 删除当前行.
        * #dd 删除几行. 例如: 3dd
        * d^ 删除到行首.
        * d$ 删除到行尾.
        * :#,&d 删除 # 到 & 行. 例如: 3,5d

      * Ctrl + w 删除光标之前的词

      * Ctrl + u 删除当前行光标左边的所有内容

        * yy 拷贝当前行到剪贴板.
        * #yy 拷贝 # 行到剪贴板.
        * y^ 从文件头开始拷贝.
        * y$ 拷贝到文件尾部.
        * :#,&y 拷贝 # 到 & 行. 例如: 4,5y
        * p 在光标后粘贴.
        * P 粘贴到光标前.
        * >> 增大缩进.
        * << 减少缩进.
        * == 自动缩进.
    查找替换
        * /# 查找 #. 例如: /printf
        * ?# 反向查找 #.
        * n 查找下一个.
        * N 反向查找下一个.
        * :s/old/new/g 当前行无提示替换.
        * :%s/old/new/g 无提示替换.
        * :%s/old/new/gc 确认替换.
        * :#,&s/old/new/g 从 # 到 & 行无提示替换.
    书签跳转
        * :marks 查看所有书签, 输入 ":<num>" 可跳转.
        * m<name> 定义书签, 如 ma 在当前行定义名为 a 的书签.
        * `<name> 跳转到某书签, "`" 为键盘 Tab 上一行第一键.
        * :jumps 查看所有跳转记录, 输入 ":<num>" 可跳转.
        * <ctrl> + o 返回上一次跳转处.
        * <ctrl> + i 和 <ctrl> + o 反向转处.
    Ctags
        * :! ctags -R . 生成 ctags 文件.
        * <ctrl> + ] 查看函数定义.
        * <ctrl> + T 返回.
        * shift + k 查看函数 man 帮助信息.
    Code
        * gg=G 源码格式化

    窗口操作

    :split <filename>  按拆分模式打开文件,默认为上下拆分
    :vsplit <filename> 左右拆分
     Ctrl-w w 切换活动窗口
     Ctrl-w Ctrl-w  切换活动窗口
     Ctrl-w h/j/k/l 切换活动窗口为 左/上/下/右 边的窗口

    整篇文章大写转化为小写
        打开文件后,无须进入命令行模式。
        键入:ggguG
        解释一下:
        ggguG分作三段gg gu G
        gg=光标到文件第一个字符
        gu=把选定范围全部小写
        G=到文件结束

    整篇文章小写转化为大写
        打开文件后,无须进入命令行模式。
        键入:gggUG
        解释一下:gggUG分作三段gg gU G
        gg=光标到文件第一个字符
        gU=把选定范围全部大写
        G=到文件结束

    只转化某个单词
        guw 、gue、gUw、gUe
        这样,光标后面的单词便会进行大小写转换
        想转换5个单词的命令如下:
        gu5w、gu5e、gU5w、gU5e

    转换几行的大小写
        将光标定位到想转换的行上,键入:1gU
        从光标所在行往下一行都进行小写到大写的转换
        10gU,则进行11行小写到大写的转换
        以此类推,就出现其他的大小写转换命令
        gU0 :从光标所在位置到行首,都变为大写
        gU$ :从光标所在位置到行尾,都变为大写
        gUG :从光标所在位置到文章最后一个字符,都变为大写
        gU1G :从光标所在位置到文章第一个字符,都变为大写

    其他
        * ! <command> 执行命令.
        * :r <file> 插入文件内容.
        * :r !<command> 插入命令输出结果.
        * :cd <path> 修改默认工作目录.

    Ctrl+Z 把当前环境放入后台

    bg - 列出已停止或后台的作业

    fg - 将最近的作业带到前台

    fg n - 将作业n带到前台

    如果不小心按了Ctrl + s,vim 好象死掉了一样,试试下面这个吧~_~!

    Crtl + s 停止输入(这两个好象是bash的原因)

    Crtl + q 恢复输入

    去掉MS下文件的^M

    :%s/^M//g # 去掉所有的^M (注意:“^M”要使用“CTRL-V CTRL-M”生成)

    改变窗口大小
    输入次序: Ctrl-w 行数 +
    Ctrl-w+ 把当前窗口高度增加”行数”行(如不指定行数,默认为1)
    Ctrl-w- 把当前窗口高度减少”行数”行(如不指定行数,默认为1)
    Ctrl-w= 让所有窗口一样高
    Ctrl-w_ 把当前窗口的高度设为”行数“,如不指定则把它最大化。

    从VIM复制到系统剪贴板clipboard

    :!pbcopy

    :[n,n] !pbcopy

    :[n,n] w !pbcopy

    加入.vimrc配置

    vmap <C-x> :!pbcopy<CR>   

    vmap <C-c> :w !pbcopy<CR><CR>

    VIM忽略语法错误

    配置文件中加入:

    let g:syntastic_quiet_messages = {'regex': ['line too long', 'colon', 'too many blank lines'] }

  • 相关阅读:
    java去除string类型里面的中括号
    java深拷贝浅拷贝
    前端接受数据去除[" "]的方法
    sql 查询近6 /xx个月/天 统计数据
    vue 定时器(定时任务)
    vue 二维码判断手机登录是哪个操作系统
    Connection is read-only. Queries leading to data modification are not allowed
    redis一闪而退解决办法
    前端的模糊查找
    vue笔记生命周期里面的某些函数
  • 原文地址:https://www.cnblogs.com/abeen/p/1786594.html
Copyright © 2011-2022 走看看