Vim文件编辑命令(Linux)
Vim文件编辑命令
| 一、 vim的帮助指令 | |||||
| 按下 <F1> 键 | |||||
| 输入 :help <回车> | |||||
| :help w <回车> | |||||
| 二、.vimrc .viminfo文件的配置 | |||||
| ~/.vimrc文件的配置 | |||||
| cp /usr/share/vim/vim70/vimrc_example.vim ~/.vimrc | |||||
| 用vim打开文件时,默认会去读.vimrc的配置信息 | |||||
| ~/.viminfo文件的配置 | |||||
| set nu | 显示行号 | ||||
| set ruler | 在编辑过程中,在右下角显示光标位置的状态行 | ||||
| set showmatch | 设置匹配模式,类似当输入一个右括号时会匹配相应的那个左括号 | ||||
| set list | 显示分隔符 | ||||
| syntax on | 语法高亮度显示 | ||||
| set fileencodings=utf-8,gbk | |||||
| set termencoding=gbk | |||||
| 三、vim的光标移动 | |||||
| vim的光标移动大家可能很清楚,不过有一些大家并不知道,却很方便的,我找了一些列出来。 | |||||
| 1 | w(e):移动光标到下一个单词. | ||||
| 2 | b :移动光标到上一个单词. | ||||
| 3 | h :光标向左移动. | k | |||
| 4 | j(Ctrl+n):光标向下移动. | h | l | ||
| 5 | k(Ctrl+p) :光标向上移动. | j | |||
| 6 | l :光标向右移动. | ||||
| 7 | space 按空格键,光标右移一个字符 | ||||
| 8 | n<space> 按数字后再按空格键,光标右移n个字符的距离 | ||||
| 9 | Backspace 光标左移一个字符 | ||||
| 10 | n<Backspace> 按数字后再按空格键,光标左移n个字符的距离 | ||||
| 11 | 0 :移动光标到本行最开头. | ||||
| 12 | ^ :移动光标到本行最开头的字符处. | ||||
| 13 | $:移动光标到本行结尾处. | ||||
| 14 | H :移动光标到屏幕的首行. | ||||
| 15 | M :移动光标到屏幕的中间一行. | ||||
| 16 | L :移动光标到屏幕的尾行. | ||||
| 17 | gg:移动光标到文档首行. | ||||
| 18 | G :移动光标到文档尾行. | ||||
| 19 | [[ :移动光标到文档首行. | ||||
| 20 | ]] :移动光标到文档尾行. | ||||
| 21 | ctrl+f: (即 ctrl 键与 f 键一同按下) 本命令即 page down. | ||||
| 22 | ctrl+b :(即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up. | ||||
| 23 | . :此命令相当好使, 它移动光标到上一次的修改行. | ||||
| 四、vim编码 | |||||
| linux下设置中文 | |||||
| 手动更改配置文件的命令:vi /etc/sysconfig/i18n | |||||
| 将LANG="zh_CN.UTF-8"修改为:LANG="zh_CN.GBK" | |||||
| 保存并关闭,运行下面的命令使配置生效: | |||||
| source /etc/sysconfig/i18n | |||||
| 查看文件编码格式 | |||||
| :set fileencoding | |||||
| 设置相应的编码查看文件 | |||||
| :set fileencoding=gb18030 | |||||
| :set fileencodings=utf-8,gb18030,utf-16,big5 | |||||
| set fileencodings=utf-8,gbk | |||||
| 五、vim 实用命令 | |||||
| 24 | 0)vim查找配对的括号 | ||||
| 按 % 可以查找配对的括号 )、]、} | This ( is a test line with ('s, ['s ] and {'s } in it. )) | ||||
| 1) 把光标放在文本一行中的任何一个有 (、[ 或 { 处。 | |||||
| 2) 接著按 % 字符。 | |||||
| 3) 此时光标的位置应当是在配对的括号处。 | |||||
| 4) 再次按 % 就可以跳回配对的第一个括号处。 | |||||
| 25 | 1.高亮显示当前文本中,光标所在单词的所有单词:shift+* | ||||
| 26 | 2.vim打开一个文件,如果文件在更新,如何显示到最新:输入":e"就搞定 | ||||
| 3. 进入vi的命令 | |||||
| 27 | vi filename 打开或新建文件,并将光标置于第一行首 | ||||
| 28 | vi +n filename 打开文件,并将光标置于第n行首 | ||||
| 29 | vi + filename 打开文件,并将光标置于最后一行首 | ||||
| 30 | vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处 | ||||
| 31 | vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename | ||||
| 32 | vi filename...filename 打开多个文件,依次编辑 | ||||
| vi a b c | |||||
| :n跳至下一个文件,:e#回到刚才编辑的文件。 | |||||
| 33 | vi -o filename...filename 用分割屏幕窗口方式同时打开多个文件 | ||||
| 可以使用 ctrl + 两次按 w 或者ctrl + w 然后按上下键在上下窗口间切换 | |||||
| 34 | 4.vim列编辑 | ||||
| vim可以用列编辑: | |||||
| 如: | |||||
| ----- | |||||
| 123 | |||||
| 456 | |||||
| 789 | |||||
| ----- | |||||
| 在每一个列的第二个字母前面加一个空格: | |||||
| 1) Ctrl+ v进入visual block模式 | |||||
| 2) 按j向下选中2 5 8三个数字 | |||||
| 3) 按I(注意是大写i),然后会让你在第一行写东西,打空格就可以输入空格, | |||||
| 4) 最后按Esc | |||||
| 搞定 | |||||
| 5. 屏幕翻滚命令 | |||||
| 35 | Ctrl+u 向文件首翻 半屏 | ||||
| 36 | Ctrl+d 向文件尾翻 半屏 | ||||
| 37 | Ctrl+f 向文件 尾翻一屏 | ||||
| 38 | Ctrl+b 向文件首 翻一屏 | ||||
| 6.插入文本类命令 | |||||
| 39 | i 从光标所在位置前面开始插入内容 | ||||
| 40 | I 从光标所在行的第一非空白字符前面开始插入内容 | ||||
| 41 | a 从光标所在位置后面开始插入内容 | ||||
| 42 | A 从光标所在行的行尾开始插入内容 | ||||
| 43 | o 在当前行之下新开一行 | ||||
| 44 | O 在当前行之上新开一行 | ||||
| 45 | r 替换当前字符,r 后接着要替换的字符 | ||||
| 46 | R 替换当前字符及其后的字符,直至按ESC键 | ||||
| 47 | s 删除当前字符,并进入输入模式 | ||||
| 48 | S 删除当前行,并进入输入模式 | ||||
| 49 | cw 删除当前字,并进入输入模式 | ||||
| 50 | ncw 或nCW 删除当前字及其后的n-1个字,并进入输入模式 | ||||
| 51 | cc 删除当前行,并进入输入模式 ncc或nCC 删除当前行及其后的n-1行,并进入输入模式 | ||||
| 7.删除命令 | |||||
| 52 | 1)ndw 或ndW 删除光标处开始及其后的n-1个字 | ||||
| 53 | 2)d0 删 至行首 | ||||
| 54 | 3)d$ 删 至行尾 | ||||
| 55 | 4)dd 删除当前行 | ||||
| 56 | 5)ndd 删除当前行及其后n-1行 | ||||
| 8.搜索及替换命令 | |||||
| 57 | 1)/pattern 从光标开始处向文件尾搜索pattern | ||||
| 58 | 3)?pattern 从光标开始处向文件首搜索pattern | ||||
| 59 | 4)n 在同一方向重复上一次搜索命令 | ||||
| 60 | 5)N 在反方向上重复上一次搜索命令 | ||||
| 61 | 6):s/p1/p2/g 将当前行中所有p1均用p2替代 | ||||
| 62 | 7):n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代 | ||||
| 63 | 8):%s/p1/p2/g 将文件中所有p1均用p2替换 | ||||
| 64 | 9):%s/p1/p2/gc 将文件中所有p1均用p2替换,但在替换前显示提示字符给使用者确认(conform)是否需要替换 | ||||
| 65 | 10):n1,n2s/^/string/g 将第n1至n2行的行首插入string | ||||
| 66 | 11):%s/^/string/g 将所有行首插入string | ||||
| 67 | 12):n1,n2s/$/string/g 将第n1至n2行的行尾插入string | ||||
| 68 | 13):%s/$/string/g 将所有行的行尾插入string | ||||
| 注意: 其中s为substitute,%表示所有行,g表示global | |||||
| 9.选项设置 set | |||||
| 69 | all 列出所有选项设置情况 | ||||
| 70 | list 显示制表位(Ctrl+I)和行尾标志($) | ||||
| 71 | nolist 不 显示制表位(Ctrl+I)和行尾标志($) nu或number 显示行号 | ||||
| 72 | nonu 不显示行号 | ||||
| 73 | wrap 折行(行内容比较多,一行显示不全时 ,折行显示) | ||||
| 74 | nowrap 不折行 | ||||
| 10.行方式命令 | |||||
| 75 | 1):n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下 | ||||
| 76 | 2):n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下 | ||||
| 77 | 3):n1,n2 d 将n1行到n2行之间的内容删除 | ||||
| 78 | 4):e filename 打开文件filename进行编辑 | ||||
| 79 | 5):w 保存当前文件 | ||||
| 80 | 6):w filename 将编辑的数据储存成另一个文件(类似另存新档) | ||||
| 81 | 7):n1,n2 w filename 将当前文件中n1至n2行的内容,保存到filename文件中 | ||||
| 82 | 8):r filename 将文件filename的内容,添加光标所在行的下一行,就是当前行的下面 | ||||
| 83 | 9):wq 保存当前文件并退出 | ||||
| 84 | 10):x 保存当前文件并退出 | ||||
| 85 | 11):q 退出vi | ||||
| 86 | 12)u 复原前一动作(撤销) | ||||
| 87 | 13)ctrl + r (恢复) | ||||
| 11.寄存器操作命令 | |||||
| 88 | yy 将 当前行 的内容保存到寄存器中 | ||||
| 89 | nyy 将当前行及其后n-1行的内容保存到寄存器中 | ||||
| 90 | p 将寄存器中的内容粘贴到光标所处行的下一行 | ||||
| 91 | P 将寄存器中的内容粘贴到光标所处行的上一行 | ||||
| 92 | nyw 将光标处开始及其后的n-1个字 保存到寄存器中 | ||||
| 93 | nyl 将光标处开始及其后的n-1个字符 保存到寄存器中 | ||||
| 94 | y1G 将光标所在行至第一行的所有内容保存到寄存器中 | ||||
| 95 | yG 将光标所在行至最后一行的所有内容保存到寄存器中 | ||||
| 96 | dd 删除当前行,并将所删内容放到寄存器中 | ||||
| 97 | ndd 删除当前行及其后n-1行,并将所删内容放到寄存器中 | ||||
| 98 | d1G 删除当前行至第一行,并将所删内容放到寄存器中 | ||||
| 99 | dG 删除当前行至最后一行,并将所删内容放到寄存器中 | ||||
| 100 | %!xxd | 二进制表示 | |||
| hexdump filename -c | |||||
浙公网安备 33010602011771号