Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

VIM学习笔记

  • :set paste? (加个?, 输入命令后会显示设置情况)

  • :scriptnames 查看vim使用了哪些配置文件

  • $ vimtutor 打开vim教程

  • U 大写U。行撤销命令,撤销所有在最近编辑的行上的操作

  • ZZ 保存并推出

  • w 移到下一个单词的词首

  • b 移到上一个单词的词首

  • e 移到下一个单词的词末

  • ge 移到上一个单词的词末

  • fa 移到本行的下一个字符a

  • Fa 移到本行的上一个字符a

  • ta 移到本行的下一个字符a的前一个字符

  • Ta 移到本行的上一个字符a的前一个字符

  • % 移到括号匹配

  • 20% 移到文件的20%处

  • H 移到屏幕首

  • M 移到屏幕中

  • L 移到屏幕末

  • CTRL-G 显示当前行的信息

  • CTRL-U 向下滚动半屏幕

  • CTRL-D 向上滚动半屏幕

  • CRTL-E 向上滚一行

  • CRTL-Y 向下滚一行

  • zt 把光标所在行移动到屏幕的顶部

  • zb 把光标所在行移动到屏幕的底部

  • 在一个文本中查找一个单词时,可以将光标移到哪个单词上,然后使用"*" 或"#"省略输入单词对这个单词 进行查找

  • set ignorecase 忽略大小写查找

  • set noignorecase

  • set hlsearch 高显亮所有匹配的地方

  • set incsearch 设置在查找的时候高显亮匹配点

  • set nowrapscan 设置查找到文件末尾就停止查找

  • m[a-z] 设置标签

  • '[a-z] 跳转到标签[a-z]处

  • dw 删除一个单词

  • x 表示dl 删除光标下的字符

  • X 表示dh 删除光标左边的字符

  • D 表示d$ 删除到行尾

  • C 表示c$ 改变到行尾

  • s 表示cl 修改一个字符

  • S 表示cc 修改一行

  • 删除一个括号内的所有内容: 可以先用f(将光标移到(, 再用df)删除到)

  • . 重复一个修改命令

  • xp 交换连个字符

  • daw 删除一个单词

  • ~ 修改光标下字符的大小写, 也可以改变可视模式下选中的所有字符

  • I 移动到当前行的第一个分空字符并启动插入模式

  • A 移动到行尾并启动插入模式

  • /usr/share/vim/vim73/vimrc_example.vim vimrc的模板文件

  • 映射F5的功能:为一个单词添加{} map <F5> i{<Esc>ea}<Esc>

  • 选项窗口
    如果要找一个选项,你可以在这里寻找帮助: |options|。另一个方法是用如下命令:
    :options
    这会打开一个新窗口,其中给出一个选项的列表,并对每个选项提供一行解释。这些选项 根据种类分组。将光标移到一个主题上然后按 就可以跳转到那里。再按一下 <Enter> 或者 CTRL-O 就可以跳回来。
    你可以通过这个窗口改变一个选项的值。例如,移到 "displaying text" 主题。然后把 光标下移到这一行: set wrap
    nowrap
    当你在上面键入回车,这行会改变为:
    set nowrap
    wrap
    现在,这个选项被关闭了。
    这行的上方是对这个选项的简要描述。将光标向上移动一行,然后按 <Enter>,你可以跳 转到 ’wrap’ 的完整帮助,再用 CTRL-O 可以跳回来。
    对于那些值为数值或者字符串的选项,你可以编辑它的值,然后按 <Enter> 来启用该 值。例如,把光标移动到下面这行:
    set so=0
    用 $ 移到行尾,再用 "r5" 命令修改为五,然后按 使修改生效。现在如果你移 动一下光标,你会发现在你的光标移到窗口边界前,你的文字就开始滚动了。这就是选项

  • ’scrolloff’ 完成的功能: 它指定在距离边界多远的地方开始滚动文字。

  • 如果你搞乱了一个选项,你可以通过在选项后加上一个 & 号把它恢复到默认值。例如:
    :set iskeyword&

  • set filetype 可以查看当前文件类型

  • set fileyype=xxx 指定文件类型,多用于当vim没有能识别出文件类型时,又想获得文件高显亮时使用, 手动指定文件类型

  • Vim 自动猜测你使用的背景色。如果是黑的 (或者其它深色的色彩),它会用浅 色作为前景色。如果是白的 (或者其它浅色),它会使用深色作为前景色。如果 Vim 猜错了,文字就很难认了。要解决这个问题,设置一下 ’background’ 选 项。对于深色:
    :set background=dark
    而对于浅色:
    :set background=light 这两个命令必须在 ":syntax enable" 命令前调用,否则不起作用。如果要在这 之后设置背景,可以再调用一下 ":syntax reset" 使得 Vim 重新进行缺省颜色 的设置。

  • "[a-z]y 将内容复制到[a-z]寄存器

  • "[a-z]p 将内容从[a-z]寄存器取出

  • :saveas 另存为

  • :file filename 对文件重命名

  • :split 把屏幕分解成两个窗口并把光标置于上面的窗口中

  • CTRL-W w 在窗口之间跳转

  • :close 关闭窗口

  • :only 关闭其他所有窗口

  • :split file 打开一个窗口并编辑另一个指定的文件

  • :new 打开窗口编辑一个新文件

  • :3split 打开一个3行的窗口

  • CTRL-W + 增大窗口大小

  • CTRL-W - 减小窗口大小

  • {height}CTRL-w _ 把窗口调整到指定高度

  • :vsplit 竖直建立窗口

  • 由于你可以用垂直分割和水平分割命令打开任意多的窗口,你就几乎能够任意设置窗口的 布局。接着,你可以用下面的命令在窗口之间跳转:

  • CTRL-W h 跳转到左边的窗口

  • CTRL-W j 跳转到下面的窗口

  • CTRL-W k 跳转到上面的窗口

  • CTRL-W l 跳转到右边的窗口

  • CTRL-W t 跳转到最顶上的窗口

  • CTRL-W b 跳转到最底下的窗口

  • 移动窗口

  • CTRL-W H 把当前窗口移到最左边

  • CTRL-W J 把当前窗口移到最下边

  • CTRL-W K 把当前窗口移到最上边

  • CTRL-W L 把当前窗口移到最右边

  • :vertical diffsplit filename 以diff的方式打开另一个文件

  • 在使用vimdiff比较文件差异时
    zo 打开折叠
    zc 关闭折叠

  • :set noscrollbind 关闭两个文件一起滚动的特性

  • :diffupdate 你可以把文本从一个窗口移到另一个,并以此来消除差异,或者为其中一个文件中增加几 行。Vim 有时可能无法及时更新高亮显示。要修正这种问题,就可以使用diffupdate

  • :tabonly 关闭其他tab

  • vim -g file.txt 以GUI方式打开vim
    在ubuntu下默认安装的vim是basic版本,没有上述功能,需要安装
    $ sudo apt-get install vim-gnome 来安装 并且使用vim gnome版本可以使用系统的剪贴板

  • :reg 查看当前所有寄存器的内容

  • “+p 将内容复制到系统剪贴板

  • ”+y 将系统剪贴办内容粘贴到vim

  • gJ 合并下一行的时候不添加空格

  • 命令 "!{motion}{program}" 用一个外部程序对一个文本块进行过滤。换句话说,它

  • 用一个文本块作为输入,执行一个由 {program} 指定的外部命令,然后用该程序的输出

  • 替代选中的文本块。

  • !date 用 "date" 的输出代替当前行。这在为文件加入时间戳

  • :read !ls 读入命令的执行结果到文件

  • :write !wc 要统计当前文件有多少个单词
    输出将是: 4 47 249 这表示你有 4 行,47 个单词和 249 个字符。

  • 替换命令可以在全文中用一个单词替换另一个单词:
    :%s/four/4/g
    "%" 范围前缀表示在所有行中执行替换。最后的 "g" 标记表示替换行中的所有匹配点。 如果你有一个象 "thirtyfour" 这样的单词,上面的命令会出错。这种情况下,这 个单词会被替换成 "thirty4"。要解决这个问题,用 "<" 来指定匹配单词开头:
    :%s/<four/4/g
    显然,这样在处理 "fourteen" 的时候还是会出错。用 ">" 来解决这个问题:
    :%s/<four>/4/g
    如果你在编码,你可能只想替换注释中的 "four",而保留代码中的。由于这很难指定, 可以在替换命令中加一个 "c" 标记,这样,Vim 会在每次替换前提示你:
    :%s/<four>/4/gc