一边看书一边记,基本覆盖了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 在n1和n2之间寻找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] 将n1到n2的内容存储成为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
转载于:https://blog.51cto.com/xingzeng/397513