快捷键 / Shortcut Keys


1 基本操作 / Basic Operation

Vim的基本操作主要可以参考以下几张图,参考链接

命令行模式

i             从光标所在字符前插入

a            从光标所在的字符后插入

o            从光标所在行的下面插入空白行

I             从光标所在行的行首插入

A           从光标所在行的行末插入

O           从光标所在行的上面插入空白行

daw        删除光标所在单词

s             删除光标所在字符进入插入模式

S            删除光标所在行进入插入模式

Esc         插入模式切换到命令行模式

.             重复操作

k            类似方向键上

j             类似方向键下

h            类似方向键左

l             类似方向键右

Ctrl+u     向上移动半页

Ctrl+d     向下移动半页

Ctrl+b     向上移动一页

Ctrl+f     向下移动一页

0            光标移动到所在行的行首

gg          移动到文本的第一行

G           移动到文本最后一行

ngg/nG   移动光标到文本的第n行行首

$            光标移动到所在行的行尾

^            光标移动到所在行的行首

w           光标跳到下个字的开头

e            光标跳到下个字的字尾

b            光标回到上个字的开头

x            每按一次,删除光标所在位置的一个字符

nx          如"3x"表示删除光标所在位置开始的3个字符

X           删除光标所在位置的前一个字符

nX          如"3X"表示删除光标所在位置的前3个字符

dd          删除光标所在行

ndd         如"3dd"表示删除光标所在行开始的3行字符

yw          将光标所在之处到字尾的字符复制到缓冲区

nyw        复制n个字符到缓冲区

p            将缓冲区里的内容写到光标所在位置

r            替换光标所在处的字符

R           替换贯标所在处的字符,直到按下"Esc"为止

u            撤销命令,可多次撤销

Ctrl+r    撤销上次u

Ctrl+o    回到光标上次位置

v            从光标所在位置开始选中

Ctrl+g     列出光标所在行的行号占总行数的百分比

ZZ          存盘退出

ZQ         不存盘退出

末行模式

:set nu     开启每行的行号

:set nonu 取消每行的行号

:n           n代表数字,表示跳到n行

:/            关键字 先按"/",在输入关键字后回车查找字符,按n查找下一个

:?         关键字 类似"/关键字"

:         命令 windows下运行dos命令,linux下运行shell命令

:s/a/b      将光标所在行的第一个a替换为b

:s/a/b/g   将光标所在行的a全部替换为b

:w          保存修改的文件

:w fn      保存并命名为fn

:q           退出vi

:q!          强制退出无法退出的vi

:wq        保存并退出

:set fileencoding=utf-8 设置编码utf-8

2 代码折叠 / Code Fold

完成环境配置中的 基本设置 -> 折叠设置 后:

zc           折叠,只折叠最外层的折叠
zC          对所在范围内所有嵌套的折叠点进行折叠,包括嵌套的所有折叠
zo           展开折叠,只展开最外层的折叠
zO          对所在范围内所有嵌套的折叠点展开,包括嵌套折叠
[z           到当前打开的折叠的开始处
]z           到当前打开的折叠的末尾处
zj           向下移动。到达下一个折叠的开始处。关闭的折叠也被计入
zk          向上移动到前一折叠的结束处。关闭的折叠也被计入

zd           删除 (delete) 在光标下的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效

zD          循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

zE          除去 (Eliminate) 窗口里“所有”的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。

zfap        将光标移到段落内,然后按zfap,就可以自动对整个段落添加折叠标签,假定你已经创建了若干折叠,而现在需要阅览全部文本。你可以移到每个  折叠处,并键入”zo”。若要做得更快,可以用这个命令:zr

zm          这将折叠更多 (M-ore)。你可以重复 “zr” 和 “zm” 来打开和关闭若干层嵌套的折叠,不然得一个一个的用zc来折叠。如果你有一个嵌套了好几层深的折叠,你可以用这个命令把它们全部打开:

zR          这将减少折叠直至一个也不剩。而用下面这个命令你可以关闭所有的折叠:

zM         这将增加折叠,直至所有的折叠都关闭了。你可以用 |zn| 命令快速禁止折叠功能。然后 |zN| 恢复原来的折叠。|zi| 切换于两者之间。

源码跳转 / Source Code Skip

完成环境配置中的 ctags 配置,以及源代码目录ctags -R

Ctrl+]     跳转至代码定义处

Ctrl+t     跳转返回

4 源码分析显示 / Source Code Analysis Display

完成环境配置中的 taglist 配置

:Tlist     输入则激活显示窗口,再次输入则关闭

5 程序结构显示 / Program Structure Display

完成环境配置中的 winManager 配置

wm        显示程序结构窗口

6 多文档切换 / Multi-document Switch

完成环境配置中的 minibufexpl 配置

ctrl+Tab 切换到前一个buffer,并在当前窗口打开文件

ctrl+shift+Tab      切换到后一个buffer,并在当前窗口打开文件

ctrl+箭头键          可以切换到上下左右窗口中

工程中查找 / Search within Project

完成环境配置中的 grep 配置

F3         查找当前光标所在内容,并定义查找范围

8 高亮标签 / Highlight Tags

完成环境配置中的 visualmark 配置

Ctrl+F2  添加标签

F2          下一个标签位置

Shift+F2 上一个标签位置

9 代码补全 / Code Complement

完成环境配置中的 pydiction 配置

在输入时加上tab建即可显示补全信息

10 代码检查 / Code Check

完成环境配置中的 pyflakes 配置

:cc          检查代码错误

11 运行代码/ Run Code 

完成环境配置中的 run 配置

F5          运行代码

12 多行插入 / Multi-line Insert

完成环境配置中的 ctrl+v 配置

Ctrl + v   进入可视化模式,选中多行,I插入,输入插入内容,esc即可退出

13 高亮搜索 / Highlight Search

Shift + */#     高亮显示搜索词,*向前搜索,#向后搜索

:nohlsearch   取消高亮显示搜索词

n/N               上/下一个高亮词

14 多词替换/删除 / Multi-replace/delete

daw+n/N+.    daw删除当前词,需要删除上/下一个时,使用n/N切换,再输入.重复

:%s/old/new/g      将文件中所有的old替换成new

:s/old/new     将选中区域内(使用v进入可视化模式)的old替换成new

相关阅读


1. Vim 环境配置

参考链接


http://blog.csdn.net/kingboygoodfly/article/details/45998187

http://www.cnblogs.com/wangkangluo1/archive/2011/06/10/2077203.html

http://tunps.com/p/781.html

http://blog.csdn.net/zhaoyong26/article/details/54379565

代码编辑器[0] -> Vim/gVim[1] -> Vim 的快捷键操作的更多相关文章

  1. 代码编辑器[0] -> Vim/gVim[3] -> 像编程一样使用Vim

    像编程一样使用Vim 目录 为什么是Vim / Why Vim 从hjkl开始上路 -- 使用基本按键进行移动和编辑 / Start from <hjkl> 一次超速和翻车的体验 -- 使 ...

  2. 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)

     环境配置 / Environment Setup 基于Python开发的 gVim 环境配置(Windows) 使用方式参考 Vim 的使用. 1 基于vundle进行配置 Vim有多个扩展管理器, ...

  3. 代码编辑器[0] -> Vim/gVim[2] -> Vim 的相关知识

    相关知识 / Relevant Knowledge 1 _vimrc编程 / _vimrc Program 1. 注释符", 用于注释 2. 关键词set, 用于设置功能等 3. 关键词im ...

  4. Vim/gvim容易忘记的快捷键

    正常模式==>插入模式 按i 在光标前插入 按I 在行首插入 按a 在光标后插入 按s 删除光标所在的字符再插入 按A 在行末插入 按o 在当前行之下新建行 按O 在当前行之上新建行 按S 删除 ...

  5. [转载] ubuntu下定制Vim/Gvim及使用技巧

    vim是linux下的编辑器之神,是玩linux的必备工具,同样emacs是神的编辑器,两个编辑器是各有千秋,看个人的喜好,青菜萝卜各有所爱.我是比较喜欢vim,用vim编写bash,perl,pyt ...

  6. 配置 .vimrc 解决 Vim / gVim 在中文 Windows 下的字符编码问题

    转载自:-杨博的日志 - 网易博客 Vim / gVim 在中文 Windows 下的字符编码有两个问题: 默认没有编码检测功能 如果一个文件本身采用的字符集比 GBK 大(如 UTF-8.UTF-1 ...

  7. vim gvim技巧大全(9)(转载)

    vim gvim技巧大全(9) 2 用命令}移动到这个段落的底部,标记为b3 输入命令:'a,'b move来移动文本.老版本的Vi编辑器不能很好的来处理多文件.但是Vim在处理多文件上却显得优秀得多 ...

  8. Gvim 和vim 有什么区别

    Gvim 和vim 有什么区别 Gvim是windows的 vim是linux的黑色的命令符 Gvim是单独的窗口下的vim,像notepad一样. vim就是在黑乎乎的cmd窗口下的编辑器.wind ...

  9. 编辑器之王:Emacs 和 Vim

    Emacs 是神的编辑器,而 Vim 是编辑器之神.二者为何会有如此美誉,且听本文向你一一道来. Author: Jiqing Wu email: jiqingwu@gmail.com homepag ...

随机推荐

  1. 剑指Offer - 九度1349 - 数字在排序数组中出现的次数

    剑指Offer - 九度1349 - 数字在排序数组中出现的次数2013-11-23 00:47 题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n, ...

  2. 把现有Unity3d游戏向Windows Phone 8.1移植(基础)

    最近在将一款现有的游戏向Windows Phone平台移植,暂时完成了一个小阶段,做一个总结. 开发环境: Windows 8.1 系统及以上,愿意的话,用Windows 10 尝鲜也可以. 微软账号 ...

  3. Nuget.config格式错误,请检查nuget.config配置文件

    安装 VS 2015 Professional 版,安装后,我想加一个nuget的包配置. 然后提示我:Nuget.config格式错误,请检查nuget.config配置文件 我找到了 Nuget. ...

  4. SSTI注入绕过(沙盒逃逸原理一样)

    在python沙盒逃逸中绕过道理是一样的. 1.python沙盒中删除了很多模块,但是没有删除reload reload(__builtins__),重新加载被删除的模块,直接命令执行,只用于py2 ...

  5. Python学习3,列表

    列表就是能够包含几个或者上千上万个元素,对我这种新手来说应该是最重要的了! _author_ = "Happyboy" shopping = ['Iphone','Huawei', ...

  6. Linux认知之旅【01 与Linux第一次亲密接触】!

    一.搜索LINUX,了解它的前世今生! linux很厉害,应用在很多方面,我知道有超算.IOT.树莓派. 而且好多开发人员都在用这个系统.linux作为服务器使用,常年不用重启,不宕机,很少受病毒影响 ...

  7. Leetcode 665.非递减数列

    非递减数列 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列. 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i ...

  8. Vue打包app

    前言 公司之前用的app就是一个套壳挂个链接就能用的app,后来需要添加微信分享方便传播,没办法只好做成混合式的app了, 因为之前做.net用vs可以创建cordova项目也试着玩过,就决定用cor ...

  9. Python MySQLdb 模块使用方法

    import MySQLdb 2.和数据库建立连接 conn=MySQLdb.connect(host="localhost",user="root",pass ...

  10. STL之deque使用简介

    deque函数列表 函数 c.assign(beg,end)c.assign(n,elem) c.at(idx) c.back() c.begin() c.clear() deque<Elem& ...