0%

vim使用手册

本文主要包括:

  • vim使用手册 个人感觉,vim用熟了,比任何编辑器都好用,VIM的许多特性节省了时间和击键次数,并可以完成一些其他编辑器无法完成的功能,这里在网上找了几个经典案例,记录一下。

与大部分其它编辑器不同,进入 Vim 后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim 的模式(mode,可以简单地理解为“状态”)概念非常重要。需要知道,Vim 有以下几个模式:

  • 正常(normal)模式,缺省的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入;任何其它模式中都可以通过键盘上的 Esc 键回到正常模式。
  • 命令(command)模式,用于执行较长、较复杂的命令;在正常模式下输入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。
  • 插入(insert)模式,输入文本时使用;在正常模式下键入“i”(insert)或“a”(append)即可进入插入模式(也有另外一些命令,如“c”,也可以进入插入模式,但这些命令有其它的作用)。
  • 可视(visual)模式,用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选定,或输入“Ctrl-V”来按方块选定。

一般的发布版中还常常带有一个简单的 30 分钟的 Vim 教程,新手在操作系统的命令行上输入vimtutor命令即可开始学习。除上面的简单说明外,本文并不介绍最基本的 Vim 命令,Vim 的新手应该先通过教程熟悉一下 Vim,再继续往下阅读。

常用的指令序列

  • 左右交换光标处两字符的位置:xp
    命令拆分:

    • x剪切当前字符
    • p粘贴剪切的字符到光标后面
  • 上下交换光标处两行的位置: ddp
    命令拆分:

    • dd 剪切当前行
    • p 粘贴剪切的内容到光标的下一行
  • 行转列:

    • 第一种, 多行合并成一行,即:
      AAAAA
      BBBBB
      CCCCC
      合并为:
      AAAAA BBBBB CCCCC
      方法1: normal状态下 3J 其中的3是范围,可以是书签或者搜索位置等方式实现,J为合并
      注: 如果改为3gJ的话,则合并时各行没有空白AAAAABBBBBCCCCC, 下面方法类似,不再重复这两种合并方式的区别.

      方法2: 命令状态下 :1,3 join   或 :1,3 j (注意j前面是空格)

      方法3: 传统一点的,替换换行符的方式,为避免最后一行也被换掉,范围缩小了,命令状态下  :1,2s/\n/ /

    • 第二种,隔行合并,即:

      AAAAA
      BBBBB
      CCCCC
      DDDDD

      合并为:

      AAAAA BBBBB
      CCCCC DDDDD

      方法1: 借用一下宏录制功能, normal状态下 qaJjq 实现录制, 然后在合适的区域重复执行n遍,这里2遍即可,normal状态下2@a

      方法2: 命令状态下 :1,4g/^/ join  增加了g过滤后,合并变成了隔行处理

  • 在每行行首添加相同的内容
    :%s/^/要添加的内容

  • 在每行行尾添加相同的内容
    :%s/$/要添加的内容

  • 利用正则表达式删除代码段每行的行号
    :%s/^\s*[0-9]\s//gc

  • 删除某一行之前的所有内容

    • 先找到这一行,复制这一行的内容,然后全文查找这一行的内容,这时候这一行是高亮的
      vim-select
    • 然后gg回到第一行
    • dn
      vim-dn

在vim里使用类似Emacs里的orgmode

  • 在.vimrc里添加配置:
    Plugin 'jceb/vim-orgmode'
  • 在vim命令行模式运行:
    :PluginInstall
    之后就能直接用vim编辑.org文件,目前vim-orgmode有如下功能:
    当前 vim orgmode不支持所有orgmode功能,但它非常有用。 已经支持的功能的简短列表:
  • 语法高亮显示
  • 标题的循环可见性( 折叠)
  • 在标题之间导航
  • 编辑文档的结构: 添加,移动,提升,表示标题和更多
  • vim orgmode和外部( 文件,网页,等等 ) 中的超链接
  • 待办事项列表管理
  • 标题标记
  • 列表中的字母符号和项目符号符号和复选框支持
  • 基本日期处理
  • 导出到其他格式( 通过 Emacs’org模式

vim设置leader键

leader 键简单的说就是一个前缀键,可以自由设定
例如,绑定leader键为‘,’

" 设置 leader 键,例子为,键,也可以设置为其他的 默认为"/"
let mapleader=","
 
" 设置快捷键,关闭一个窗口
map <leader>wq :wq<CR>

这个例子中,在 vim 的normal-mode下,按空格键+w+q 就可以保存文件退出窗口
在这个leader的前提下,就不会有键冲突的的情况了