常用的130个vim命令
最近VIM用的也越来越多了...因为确实在慢慢的把win下的编辑习惯转成unix下的编辑习惯..._vimrc也在不断的完善中先贴一下平时在VIM中使用中的命令...有很多也是我没有掌握的
(估计也是转的)原帖地址:http://www.oschina.net/news/43167/130-essential-vim-commands
基础
| :e filename | Open filename for edition |
| :w | Save file |
| :q | Exit Vim |
| :q! | Quit without saving |
| :x | Write file (if changes has been made) and exit |
| :sav filename | Saves file as filename |
| . | Repeats the last change made in normal mode |
| 5. | Repeats 5 times the last change made in normal mode |
在文件中移动
| k or Up Arrow | move the cursor up one line |
| j or Down Arrow | move the cursor down one line |
| e | move the cursor to the end of the word |
| b | move the cursor to the begining of the word |
| 0 | move the cursor to the begining of the line |
| G | move the cursor to the end of the line |
| gg | move the cursor to the begining of the file |
| L | move the cursor to the end of the file |
| :59 | move cursor to line 59. Replace 59 by the desired line number. |
| 20| | move cursor to column 20. |
| % | Move cursor to matching parenthesis |
| [[ | Jump to function start |
| [{ | Jump to block start |
剪切、复制和粘贴
| y | Copy the selected text to clipboard |
| p | Paste clipboard contents |
| dd | Cut current line |
| yy | Copy current line |
| y$ | Copy to end of line |
| D | Cut to end of line |
搜索
| /word | Search word from top to bottom |
| ?word | Search word from bottom to top |
| * | Search the word under cursor |
| /\cstring | Search STRING or string, case insensitive |
| /jo[ha]n | Search john or joan |
| /\< the | Search the, theatre or then |
| /the\> | Search the or breathe |
| /\< the\> | Search the |
| /\< ¦.\> | Search all words of 4 letters |
| /\/ | Search fred but not alfred or frederick |
| /fred\|joe | Search fred or joe |
| /\<\d\d\d\d\> | Search exactly 4 digits |
| /^\n\{3} | Find 3 empty lines |
| :bufdo /searchstr/ | Search in all open files |
| bufdo %s/something/somethingelse/g | Search something in all the open buffers and replace it withsomethingelse |
替换
| :%s/old/new/g | Replace all occurences of old by new in file |
| :%s/onward/forward/gi | Replace onward by forward, case unsensitive |
| :%s/old/new/gc | Replace all occurences with confirmation |
| :2,35s/old/new/g | Replace all occurences between lines 2 and 35 |
| :5,$s/old/new/g | Replace all occurences from line 5 to EOF |
| :%s/^/hello/g | Replace the begining of each line by hello |
| :%s/$/Harry/g | Replace the end of each line by Harry |
| :%s/onward/forward/gi | Replace onward by forward, case unsensitive |
| :%s/ *$//g | Delete all white spaces |
| :g/string/d | Delete all lines containing string |
| :v/string/d | Delete all lines containing which didn’t contain string |
| :s/Bill/Steve/ | Replace the first occurence of Bill by Steve in current line |
| :s/Bill/Steve/g | Replace Bill by Steve in current line |
| :%s/Bill/Steve/g | Replace Bill by Steve in all the file |
| :%s/^M//g | Delete DOS carriage returns (^M) |
| :%s/\r/\r/g | Transform DOS carriage returns in returns |
| :%s#<[^>]\+>##g | Delete HTML tags but keeps text |
| :%s/^\(.*\)\n\1$/\1/ | Delete lines which appears twice |
| Ctrl+a | Increment number under the cursor |
| Ctrl+x | Decrement number under cursor |
| ggVGg? | Change text to Rot13 |
大小写
| Vu | Lowercase line |
| VU | Uppercase line |
| g~~ | Invert case |
| vEU | Switch word to uppercase |
| vE~ | Modify word case |
| ggguG | Set all text to lowercase |
| gggUG | Set all text to uppercase |
| :set ignorecase | Ignore case in searches |
| :set smartcase | Ignore case in searches excepted if an uppercase letter is used |
| :%s/\<./\u&/g | Sets first letter of each word to uppercase |
| :%s/\<./\l&/g | Sets first letter of each word to lowercase |
| :%s/.*/\u& | Sets first letter of each line to uppercase |
| :%s/.*/\l& | Sets first letter of each line to lowercase |
读写文件
| :1,10 w outfile | Saves lines 1 to 10 in outfile |
| :1,10 w >> outfile | Appends lines 1 to 10 to outfile |
| :r infile | Insert the content of infile |
| :23r infile | Insert the content of infile under line 23 |
文件浏览器
| :e . | Open integrated file explorer |
| :Sex | Split window and open integrated file explorer |
| :Sex! | Same as :Sex but split window vertically |
| :browse e | Graphical file explorer |
| :ls | List buffers |
| :cd .. | Move to parent directory |
| :args | List files |
| :args *.php | Open file list |
| :grep expression *.php | Returns a list of .php files contening expression |
| gf | Open file name under cursor |
和 Unix 系统交互
| :!pwd | Execute the pwd unix command, then returns to Vi |
| !!pwd | Execute the pwd unix command and insert output in file |
| :sh | Temporary returns to Unix |
| $exit | Retourns to Vi |
对齐
| :%!fmt | Align all lines |
| !}fmt | Align all lines at the current position |
| 5!!fmt | Align the next 5 lines |
Tabs/Windows
| :tabnew | Creates a new tab |
| gt | Show next tab |
| :tabfirst | Show first tab |
| :tablast | Show last tab |
| :tabm n(position) | Rearrange tabs |
| :tabdo %s/foo/bar/g | Execute a command in all tabs |
| :tab ball | Puts all open files in tabs |
| :new abc.txt | Edit abc.txt in new window |
分屏显示
| :e filename | Edit filename in current window |
| :split filename | Split the window and open filename |
| ctrl-w up arrow | Puts cursor in top window |
| ctrl-w ctrl-w | Puts cursor in next window |
| ctrl-w_ | Maximize current window vertically |
| ctrl-w| | Maximize current window horizontally |
| ctrl-w= | Gives the same size to all windows |
| 10 ctrl-w+ | Add 10 lines to current window |
| :vsplit file | Split window vertically |
| :sview file | Same as :split in readonly mode |
| :hide | Close current window |
| :nly | Close all windows, excepted current |
| :b 2 | Open #2 in this window |
自动完成
| Ctrl+n Ctrl+p (in insert mode) | Complete word |
| Ctrl+x Ctrl+l | Complete line |
| :set dictionary=dict | Define dict as a dictionnary |
| Ctrl+x Ctrl+k | Complete with dictionnary |
Marks
| m {a-z} | Marks current position as {a-z} |
| ' {a-z} | Move to position {a-z} |
| '' | Move to previous position |
缩写
| :ab mail mail@provider.org | Define mail as abbreviation of mail@provider.org |
文本缩进
| :set autoindent | Turn on auto-indent |
| :set smartindent | Turn on intelligent auto-indent |
| :set shiftwidth=4 | Defines 4 spaces as indent size |
| ctrl-t, ctrl-d | Indent/un-indent in insert mode |
| >> | Indent |
| << | Un-indent |
| =% | Indent the code between parenthesis |
| 1GVG= | Indent the whole file |
语法高亮
| :syntax on | Turn on syntax highlighting |
| :syntax off | Turn off syntax highlighting |
| :set syntax=perl | Force syntax highlighting |
常用的130个vim命令的更多相关文章
- [转]常用的130个vim命令
原帖地址:http://www.oschina.net/news/43167/130-essential-vim-commands 从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编 ...
- 你需要的130个vim命令
参考文章:http://www.oschina.net/news/43167/130-essential-vim-commands,其中有些我以为需要补充的及时补充或修改 从 1970 年开始,vi ...
- 常用vim命令
一.Vim编辑器的常用命令 在Linux下毫无疑问vim编辑器是非常好用的 因为平时有用到,有些东西不常用就会忘记,特记录下自己一些常用的 1.1.2 命令模式转换为编辑模式 i: 在当前光标所在 ...
- 工作中常用到的Vim命令
最近工作中需要到linux服务器上更改文件,苦于对vim的各种命令不熟悉,今天特此总结并熟悉一下各种vim命令,好提高工作效率.后期持续更新 vim编辑器个人设置 先复制一份vim配置模板到个人目录下 ...
- 常用 vim 命令总结
学习 vim ,是需要经常使用的,而这些命令,是我这段时间最常用的命令,很有效率的提高的我的文本编辑效率.----------------------------------------------- ...
- 整理常用的 vim 命令
vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令也非常的多,对于初学 ...
- 超过 130 个你需要了解的 vim 命令
从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编辑器之一.5年前,我写了一个问自己名为 “每个程序员都应该知道的 100 个 vim 命令” 这次算是之前那篇文章的改进版,希望你会 ...
- (转)超过 130 个你需要了解的 vim 命令
从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编辑器之一.5 年前,我写了一个问自己名为 “每个程序员都应该知道的 100 个 vim 命令” 这次算是之前那篇文章的改进版,希望你 ...
- linux最常用vim命令记录
先来一张图了解3种模式: 一.输入vim 命令,进入命令模式 此时可执行: 1.行号显示 (1):set nu 显示文本的行号: :nonu 取消显示行号 2.光标移动 (1)n<E ...
随机推荐
- [笔记-统计学习方法]感知机模型(perceptron) 原理与实现
前几天认把感知机这一章读完了,顺带做了点笔记 现在把笔记做第三次的整理 (不得不说博客园的LaTex公式和markdown排版真的不太舒服,该考虑在服务器上建一个博客了) 零.总结 适用于具有线性可分 ...
- Symfony4中文文档: 安装和设置Symfony框架
安装和设置Symfony框架 要创建新的Symfony应用程序, 首先确保使用的是PHP7.1 或更高版本并且已经安装Componser. 如果未安装, 请首先在系统上全局安装Componser. 如 ...
- 2014 CodingTrip - 携程编程大赛 (预赛第一场)
1001: 可以证明(扩展欧几里得),只要卡片中有两个卡片互素,旁边点就是可达的. 因此只需要算出所有卡片不互素的情况有多少种,可用容斥原理. #include <cstdio> #inc ...
- 洛谷 P1071 潜伏者
P1071 潜伏者 题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S ...
- android 视频开发2分之2(仿美拍,糗百)
上一篇写了分段录制和合并视频.这一篇则是选择视频,然后截断视频. 1.从sdcard中找到视频资源: 2.分析视频,拿到你须要的帧数当你的图片.(我的是依据參数来算的多少秒1帧的图片,通常是1秒1帧来 ...
- 泛泰A820L (高通MSM8660 cpu) 3.4内核的CM10.1(Android 4.2.2) 測试版第二版
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
最近在网上看到一些人讨论到Java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法的一些题目,很多人感到很迷惑,为什么,在jav ...
- css3 背景过度实现
代码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&q ...
- ES6学习笔记(六)数组的扩展
1.扩展运算符 1.1含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // ...
- WebAssembly学习(一):认识WebAssembly
WebAssembly作为一门新兴起的技术,在 JavaScript 圈非常的火!人们都在谈论它多么多么快,怎样怎样改变 Web 开发领域,被各大巨头所推广,这篇文章对其做一个简单的了解认识,本文非原 ...