一边看书一边记,基本覆盖了VIM大部分的使用~CLI控必备!

欢迎帮我挑错,因为我总结完了就没检查过~O(∩_∩)O哈哈~

操作方法

 

移动光标(前面可加数字)

[h] | []   光标向左移动

[j] | []   光标向下移动

[k] | []   光标向上移动

[l] | []   光标向右移动

[+] 光标移动到非空格符的下一列

[-] 光标移动到非空格符的上一列

[space] 空格(前面可加数字)

[$] | [End] 移动到这一行的最后面字符处

[H] 光标移动到这个屏幕最上方那一行的第一个字符

[M] 光标移动到这个屏幕中间那一行的第一个字符

[L] 光标移动到这个屏幕最下方那一行的第一个字符

[G] 光标移动到这个档案的最后一行

n[G] 光标移动到这个档案的第n

[gg] 光标移动到这个档案的第一行,相当于1G

n[Enter] 光标向下移动n

 

翻页方法

[ctrl]+[f] | [Page Down] 屏幕向下移动一页

[ctrl]+[b] | [Page up]   屏幕向下移动一页

[ctrl]+[d] 屏幕向下移动半页

[ctrl]+[u] 屏幕向上移动半夜

 

搜寻和取代

/word 向光标之下搜索一个名为word的字符串

?word 向光标之下搜索一个名为word的字符串

[n] 重复前一个动作

[N] 反向进行前一个动作

eg

:n1,n2s/word1/word2/g n1n2之间寻找word1并替换为word2

:1,$s/word1/word2/g 从第一行到最后一行寻找word1并替换为word2

:1,$s/word1/word2/gc 从第一行到最后一行寻找word1并替换为word2,且在取代前显示提示字符给用户确认(confirm)是否需要取代

 

删除

[x] | [del]向后删除一个字符

[X] | [backspace]向前删除一个字符

n[x] 连续向后删除n个字符

[dd] 删除光标所在一行

n[dd] 删除光标所在的向下n

[d]1[G] 删除光标所在到第一行的所有数据

[d][G] 删除光标所在到最后一行的所有数据

[d]0 删除光标所在处到该行的行首一个字符

[d]$ 删除光标所在处到该行的行尾字符

复制

[yy] 复制光标所在一行

n[yy] 复制光标所在的向下n

[y]1[G] 复制光标所在列到第一行的所有数据

[y][G]  复制光标所在列到最后一行的所有数据

[y]0    复制光标所在处到该行的行首的所有数据

[y]$    复制光标所在处到该行的行尾的所有数据

贴上

[p] 将已复制的数据在光标下一行贴上

[P] 将已复制的数据在光标上一行贴上

合成

[J] 将光标所在行与下一行合成同一行

重复删除

[c] 重复删除多个数据,eg [10cj]向下删除10

复原

[u] 复原前一个动作

[Ctrl]+[r] 重做上一个动作

[.] 重复前一个动作

 

进入插入模式(Insert mode)

[i] 从光标处插入

[I] 从光标所在行第一个非空字符处插入

[a] 从光标所在的下一个字符开始插入

[A] 从光标所在行的最后一个字符插入

[o] 从光标所在的下一行插入新的一行

[O] 从光标所在的上一行插入新的一行

 

进入取代模式(Replace mode)

[r] 取代光标所在的那一个字符1

[R] 一直取代光标所在字符

 

指令模式

:w  将编辑的数据写入硬盘档案中

:w! 强制写入(只读)档案,跟对文档的权限有关

:q  退出vi

:q! 强制退出不保存

:wq 存储后离开

:wq!强制存储后离开

[ZZ]若档案无改动则不存储离开;若档案已改动则存储后离开

:w [filename] 另存为

:r [filename] 在编辑的数据中,读入另一个档案的数据

:n1,n2 w [filename] n1n2的内容存储成为filename这个档案

:! [command] 暂时离开vi到指令模式下执行command的显示结构

 

Vim环境的变更(vim设定档 ~/.vimrc

:set nu 显示行号

:set nonu 取消行号

:set hlsearch 高亮度搜索high light search将结果反白

:set nohlserch 关闭高亮度搜索

:set backup 自动存储备份档

:set ruler 显示或不显示右下角的一些状态栏说明

:set showmode 显示或不显示左下角类似—INSERT—状态栏

:set backspace=(012) 删除权限0/1仅可删除刚编辑的字符2全权

:set all 显示目前所有的环境参数设定值

:set 显示自行更改的参数设定值

:syntax on 显示语法颜色

:syntax off 关闭语法颜色

:set bg=dark 显示深颜×××调

:set bg=light 显示浅颜×××调(默认)

 

区块选择

[v] 字符选择,会将光标经过的地方反白选择

[V] 行选择,会将光标经过的行反白选择

[ctrl]+[v] 区块选择,可以用长方形的方式选择资料

y 将反白的地方复制

d 将反白的地方删除

 

多档案编辑

:n 编辑下一个档案

:N 编辑上一个档案

:files 列出目前这个vim的开启的所有档案

 

多窗口按键

:sp [filename] 开启一个新窗口并加入filename文件,filename为空则显示同一内容

[ctrl]+[w] -> j | 将光标移动到下方的窗口

[ctrl]+[w] -> k | 将光标移动到上方的窗口

[ctrl]+[w] -> q 离开该窗口

 

查看自己的vi是否已经更新为vim

#alias

 

dos系统的断行转换

#dos2unix [-参数] [filename] [new filename]

#dos2unix [-参数] [filename] [new filename]

-k 保留原档案的mtime时间格式,不更新修改时间

-n 保留旧档,将转换后的档案输出到新档案

 

语系编码的转换

#iconv -list

#iconv f [原编码] [-参数] [新编码] [-o newfile]

       --list   列出iconv支持的语系

       -f       from来源

       -t       to转换到

       -o [new filename]    保留原本那档案并建立新编码档案

       eg: #iconv –f utf8 –t big5 vi.utf8 | inconv –f big5 –t gb2312 | \

iconv –f gb2312 –t utf8 –o vi.gb.utf8