基础
: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
nyy
|
Copy current line
将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
|
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命令相关推荐
- vim command(vim命令)
vim command(vim命令) i: 插入光标前一个字符 I: 插入行首 a: 插入光标后一个字符 A: 插入行未 o: 向下新开一行,插入行首 O: 向上新开一行,插入行首h: 左移 j: 下 ...
- 如何在Linux中运用vim命令轻松编辑文件
在正文开讲之前,我们先来解决一个问题: 有很多人在Linux环境下操作时,有时在虚拟机中操作的内容我们无法将其移入真机中,我们可以用以下方式建立真机与虚拟机的联系,在真机中操作虚拟机. 1).ifco ...
- 20180929 VIM进入编辑模式、VIM命令模式常用操作
2019独角兽企业重金招聘Python工程师标准>>> vim进入编辑模式方式 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 a 在当前字符后插入 A 在光标所在行的 ...
- java 执行linux命令行_10个高效Linux技巧及Vim命令对比
专注于Java领域优质技术,欢迎关注 作者:vimtutor 来自:Vim教程网 Vim的很多命令和功能与Linux系统的命令和功能及其相似,可以说是一脉相承.Vim教程网(https://vimjc ...
- 进入编辑模式、vim命令模式、vim实践
进入编辑模式 1.[root@test ~]# vi /etc/services 2.输入小写的i后再下发就会出现--INSERT--,就可以编辑 # # Each line describes on ...
- vi/vim命令怎么在Linux系统中使用
本篇文章为大家展示了vi/vim命令怎么在Linux系统中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获. 1.vi和vim的区别: 就是在进入一般命令模式 ...
- linux——vim命令详细说明
vim 1. vim的注意事项 ## 1. 编辑文件时 当文件名称存在,那么进入文件直接编辑 当文件名称不存在,vim会在退出保存时自动建立文件 当vim命令后没有跟任何文件名称时,时无法实现&quo ...
- 【实施工程师】vim命令
[实施工程师]vim命令 vim命令 编辑文件使用[vi]或[vim]均可. 键盘输入[i]是开始输入: 输入测试内容: 键盘输入[Esc+:wq]退出并保存 查看是否编辑成功: 保存成功.
- vim 命令学习(高级篇)
[1]打开文件方式 (1)vim +n filename 作用:打开文件,并定位到第n行 例如:vim +103 2019-02-26-errorrepeat.txt 效果:打开2019-02-26- ...
最新文章
- 约瑟夫死亡游戏算法问题
- 关于校验规则(Validation Rule)和业务规则(Bussiness Rule)的思考
- NoSQL 之 Morphia 操作 MongoDB
- 数据库状态标识位flag设计
- pygame里面物体闪烁运动_利用自闪烁发光二极管探究小车在倾斜轨道上的运动规律...
- 你知道 Java 类是如何被加载的吗?
- 成为高手前必懂的TCP干货
- TCP协议与IP协议
- ACM篇:Uva -- 253 Cude Painting
- 看美文,记单词(5)
- TypeError: list indices must be integers or slices, not float
- Selenium学习笔记
- 计算机一级打字要注意什么,用键盘打字时要注意什么 怎样用键盘来练习打字...
- Unity格子类三消游戏【物体下落】小细节(Unity萌新的备忘录)
- php fflush函数的用法,fflush 函数
- 图形B=B≌B凸显中学数学有一系列重大错误(更新稿) ——合同图形概念让5000年无人能识的自然数一下子浮出水面
- Introspector
- 自己整理mysql语句
- Browser历险记】认识Browser浏览器
- <Rasa实战> 内容摘要(四)
热门文章
- Maximum sum(信息学奥赛一本通-T1305)
- 计算三角形面积(信息学奥赛一本通-T1034)
- Hello,World!的大小(信息学奥赛一本通-T1023)
- 信息学奥赛一本通C++语言——1032:大象喝水
- 55 FI配置-财务会计-固定资产-主数据-定义4-字符评估组
- 9.1 LSMW程序创建操作手册 第1 2步
- numpy求逆矩阵_线性代数精华2——逆矩阵的推导过程
- 语义分割论文阅读:FCN、PSPNet、DDRNet、BiseNet、BiseNetV2、deeplabv3
- 字段的某记录相同,但是时间不同,找到MySQL里面最新的数据
- IDEA的debug查看某一变量或字段的具体值