Linux学习笔记:vim编辑器

简介

  • vi:Visual Interface,文本编辑器
  • 文本:ASCII,Unicode
  • 文本编辑种类:
    • 行编辑器:sed
    • 全屏编辑器:nano
  • VIM:Vi IMproved

使用

  • vim:模式化的编辑,模式种类如下:
    • 编辑模式:命令模式
    • 输入模式
    • 末行模式:提供内置的命令行接口
  • 打开文件:
    • vim [OPTION…] FILE…
      • +#:打开文件后,直接让光标处于第#行的行首
      • +\PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
  • 模式转换:
    • 编辑模式 –> 输入模式
      • i:insert,在光标所在处输入
      • a:append,在光标所在处后面输入
      • o:在当前光标所在行的下方打开一个新行
      • I:在当前光标所在行的行首输入
      • A:在当前光标所在行的行尾输入
      • O:在光标所在行的上方打开一个新行
    • 输入模式 –> 编辑模式
      • ESC键
    • 编辑模式 –> 末行模式
    • 末行模式 –> 编辑模式
      • ESC
  • 关闭文件:
    • :q 退出
    • :q! 强制退出,丢弃做出的修改
    • :wq 保存退出
    • :x 保存退出
    • :w /PATH/TO/SOMEWHERE
    • ZZ:保存退出
  • 光标跳转:
    • 字符间跳转:
      • h:光标向左移动一个字符
      • l:光标向右移动一个字符
      • j:光标向下移动一个字符
      • k: 光标向上移动一个字符
      • #COMMAND:向指定方向跳转由#指定的个数的字符
    • 单词间跳转:
      • w:下一个单词的词首
      • e:当前或下一个单词的词尾
      • b:当前或前一个单词的词首
      • #COMMAND:由#指定一次跳转的单词数
    • 行首行尾跳转:
      • ^:跳转至行首的第一个非空白字符
      • 0:跳转之行首
      • $:跳转至行尾
    • 行间移动
      • #G:跳转至由#指定行
      • G:跳转至最后一行
      • 1G,gg:跳转至第一行
    • 句间移动:
      • ):移动至下一个句子
      • (:移动至上一个句子
    • 段落间移动:
    • }:下一个段
    • {:上一个段

vim的编辑命令

  • 字符编辑:
    • x:删除光标处的字符
    • #x:删除光标处其实的#个字符
    • xp:交换工作所在处的字符及其后面字符的位置
  • 删除命令:
    • d:删除命令,可结合光标跳转命令,实现范围删除
      • d$:删除光标处至行尾的所有字符
      • d^:删除光标处至行首第一个非空白字符间的所有字符
      • d0:删除港标出至行首的所有字符
      • dw:删除光标处至下一个单词的词首之间的所有字符
      • de:删除光标处至当前或下一个单词的词尾间的所有字符
      • db:删除光标处至当前或前一个单词的词首间的所有字符
      • #COMMAND
      • dd:删除光标所在行
      • #dd:多行删除
  • 粘贴命令(p,put,paste):
    • p:缓冲区中村的如果为整行,则粘贴当前光标所在行的下方:否则,则粘贴至当前光标所在出的后面
    • P:缓冲区村的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
  • 复制命令(y,yank):
    • y:复制,工作行为类似于d命令
      • y$:复制光标处至行尾的所有字符
      • y0:复制光标处至行首的所有字符
      • y^:复制光标处至行首第一个非空白字符间的所有字符
      • ye:复制光标处至当前或下一个单词的词尾间的所有字符
      • yw:复制光标处至下一个单词的词首之间的所有字符
      • yb:复制光标处至当前或前一个单词的词首间的所有字符
      • #COMMAND:
      • yy:复制光标所在行
      • #yy: 多行复制
  • 改变命令(c,change):
    • c:修改
      • 编辑模式 –> 输入模式
      • c$:修改光标处至行尾的所有字符
      • c^:修改光标处至行首第一个非空白字符间的所有字符
      • c0:修改光标处至行首的所有字符
      • cb:修改光标处至当前或前一个单词的词首间的所有字符
      • ce:修改光标处至当前或下一个单词的词尾间的所有字符
      • cw:修改光标处至下一个单词的词首之间的所有字符
        • #COMMAND:
      • cc:修改光标所在行
      • #cc: 修改多行
  • 替换命令(r,replace)
    • r:替换光标所在处的字符
  • 其他编辑操作
    • 可视化模式
      • v:按字符选定
      • V:按行选定
      • Note:经常结合编辑命令
  • 撤销此前的编辑:
    • u(undo):撤销此前的操作
      • #u:撤销之前的#步操作
  • 撤销此前的撤销
    • Ctrl + r
  • 重复前一个编辑操作
    • ”.”
  • 翻屏操作:
    • Ctrl + f:向文件尾部翻一屏
    • Ctrl + b:向文件首部翻一屏
    • Ctrl + d:向文件尾部翻半屏
    • Ctrl + u:向文件首部翻半屏
  • vim自带的练习教程:vimtutor
  • vim中的末行模式:内含内建的命令行接口
    • 地址定界
      • :start_pos,end_pos
        • #:具体的第#行,例如2表示第2行
        • #,#:从左侧#表示行起始,到右侧#表示行结束
        • #,+#:从左侧#表示行其实,加上右侧#表示的行数
        • .:当前行
        • $:最后一行
          • .,$-1
        • %:全文,相当于1,$
        • /part1/,/part2/:从第一次被part1模式匹配到的行开始,一直到第一次被part2匹配到的行结束
      • 使用方式:后跟一个编辑命令
        • d 地址定界:删除界定的内容
        • y 地址定界:复制界定的内容
        • w /PATH/TO/SOMEWHERE:将范围内的行另存至指定的文件中
        • r /PATH/FROM/SOMEWHERE:在指定位置插入指定文件中的所有内容
    • 查找:
      • /PATTERN:从当前光标所在处向文件尾部查找
      • ?PATTERN:从当前光标所在处向文件首部查找
        • n:与命令方向相同
        • N:与命令方向相反
    • 查找并替换:
      • s:在末行模式下完成查找替换操作
        • s/要查找的内容/替换为的内容/修饰符
          • 要查找的内容:可使用模式
          • 替换为的内容:不能使用模式,但可以使用\1,\2,…等后向引用符号,还可以使用”&”引用前面查找时查找到的整个内容
        • i:忽略大小写
        • g:全局替换,默认情况下,每一行只替换第一次出现的内容
        • 注:查找替换中的分隔符/可替换为其他字符,例如:
          • s@ @ @
          • s# # #
  • 多文件模式:
    • vim FILE1 FILE2 FILE3 …
      • :next 下一个
      • :prev 上一个
      • :first 第一个
      • :last 最后一个
      • :wall 保存所有
      • :qall 退出所有
  • 窗口分割模式:
    • vim -o|-O FILE1 FILE2
      • -o:水平分割
      • -O:垂直分割
      • 在窗口间切换:Ctrl + w,Arrow
  • 单文件窗口分割:
    • Ctrl + w,s:split,水平分割
    • Ctrl + w,v:vertcal,垂直分割
  • 定制vim的工作特性
    • 配置文件:永久有效
      • 全局:/etc/vimrc
      • 个人:~/.vimrc
    • 末行:当前vim进程有效
      • 行号
        • 显示:set number,简写为set nu
        • 取消显示:set nonumber,简写为set nonu
      • 括号匹配
        • 匹配:set showmatch,简写为set sm
        • 曲线匹配:set noshowmatch,简写为set nosm
      • 自动缩进
        • 启用:set ai
        • 禁用:set noai
      • 高亮搜索:
        • 启用:set hlsearch
        • 禁用:set nohlsearch
      • 语法高亮:
        • 启用:syntax on
        • 禁用:syntax off
      • 忽略字符大小写
        • 启用:set ic
        • 禁用:set noic
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值