VI(M)共通コマンド

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/gavin__fan/article/details/102752755

1. VIの3つの動作モード

  • コマンドモード
    • まず、使用してファイルオープンコマンドモード、  vi 入口;
    • 例えば、ファイルコマンドのルーチンの編集操作、場所、フリップ、コピー、貼り付け、削除など。
  • ラインモード
    • 保存して終了操作を、ある  vi 輸出。
    • :wq:表現  write&quit;
  • 編集モード
    • 通常のテキストエディタ

2. viのファイルの操作

  • vi 文件名:新しいファイルを開くか作成します。
  • vi 文件名 +行数:ファイルを開き、行を見つけ、あなたは行番号を指定しない場合は、ファイルの末尾に直接配置されます。

2.1繰り返し

  • コマンドモードでは、最初のコマンドで始まる番号を入力し、コマンドが指定回数ように繰り返し実行することができます。

2.2モバイルを選択

  • 方向
    • h:左
    • j:ダウン
    • k:移動
    • l:右
    • {:プレスセグメントは、シフトを移動させ、段落を区別するためのブランク行。
    • }:プレスセクションは、下に移動します。
    • w:1つのワード(単語)をバックに移動。
    • b:前方に一つの単語を移動します
    • 0:最初の行
    • ^:最初の行は、最初の文字は、空白の位置ではありません。
    • $:行の終わり
  • 行数
    • gg:ファイルの先頭、  15gg表現は、15行目にジャンプします。
    • G:ファイルの終わり、  15G15行にジャンプを表明。
    • :数字:番号に対応する行番号にジャンプ。
  • 画面モバイル
    • ctrl + d:半分の画面を下に回します。
    • ctrl + u:ハーフ画面が上向きになりました。
    • ctrl + f:;(フォワード)1つの画面を下げます
    • ctrl + b:;(戻る)1つの画面を回し
    • H:画面の上部(ヘッド)
    • M:画面中央;(中)
    • L:画面の下部(低)
  • ブラケットスイッチ
    • 世界のプログラムでは、  () [] {}高い使用頻度、およびすべてはペアで来ます。
    • %: 括号匹配及切换;
  • 标记
    • 在开发时,某一块代码可能需要稍后处理,例如编辑,查看;
    • 此时,先使用 m添加一个标记,这样可以在需要时,快速地跳转回来或者执行其他编辑操作;
    • 标记名称可以是 a~z 或者 A~Z 之间的任意一个字母;
    • 添加了标记的行如果被删除,标记同时被删除;
    • 如果在其他行添加了相同名称的标记,之前添加的标记也会被替换掉;
    • mx: 添加标记x, x是 a~z或者 A~Z 之间的任意一个字母;(mark)
    • 'x: 直接定位到标记x所在的位置

2.3 编辑操作(命令模式)

  • 选中文本(可视模式)
    • 学习复制命令前,应该先学会怎么样选中要复制的代码;
    • v: 按字符移动选中文本;
    • V: 按行移动选中文本,可以配合 dy,>>,<<实现对文本块的删除,复制,左移,右移;
    • ctrl + v: 垂直方向选中文本;
  • 撤销和恢复撤销
    • u: 撤销上次命令;(undo)
    • ctrl + r: 恢复撤销的命令;(redo)
  • 删除文本(类似于剪切操作)
    • x: 删除光标后一个字符,相当于 Del;(cut)
    • X: 删除光标前一个字符,相当于 Backspace;
    • d(移动命令): 删除移动命令对应的内容;例如
      • d0: 删除光标前本行所有内容,不包含光标所在字符;
      • dw: 删除光标开始位置的字符,包含光标所在字符;
    • dd: 删除光标所在行;
      • 8dd: 表示从当前光标所在的行开始剪切8行;
    • D: 删除光标后本行所有内容,包含光标所在字符;
  • 复制和粘贴
    • 复制命令会将选中的文字保存在缓冲区;
    • 删除命令会将删除的文字删除的文字保存在缓冲区;
    • y(移动命令): 复制; (copy)
    • yy:复制一行, 可以 8yy复制8行;
    • p: 粘贴(paste)
  • 缩排和重复执行
    • >>: 向右增加缩进;(一次在选中代码前增加4个空格)
    • <<: 向左减少缩进;
    • . : 重复上次命令;

2.4 替换

  • r: 替换当前字符串(命令模式)
  • R: 替换当前行光标后的字符(替换模式)
    • R命令可以进入替换模式,替换完成后,ESC可以回到命令模式;
    • 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改;

2.5 查找

  • /str: 查找str;
  • 查找到指定内容之后,使用 Next 查找下一个出现的位置:
    • n: 查找下一个;
    • N: 查找上一个;
    • 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可;
  • 单词快速匹配
    • *: 向后查找当前光标所在单词;
    • #: 向前查找当前光标所在单词;

2.6 查找并替换

  • vi中查找和替换命令,需要在末行模式下执行;
  • 格式: :%s///g;
  • 全局替换:
    • :%s/abc/123/g: 将所有的abc替换成123;
  • 可视区域替换
    • 先选中要替换文字的范围;
    • :'<,'>s/旧文本/新文本/g
  • 确认替换
    • 如果把末尾 g改成 gc,在替换的时候,会有提示!
    • :%s/旧文本/新文本/gc
    • 提示语:
      • y: 替换(yes)
      • n: 不替换(no)
      • a: 替换所有(all)
      • q: 退出替换(quit)
      • l: 替换最后一个(last),并把光标移动到行首;
      • ^E: 向下滚屏;
      • ^Y: 向上滚屏;

2.7 插入命令

  • 进入编辑模式的命令:
    • i: 在当前字符前插入文本;(insert)
    • I: 在行首插入文本;(insert)
    • a: 在当前字符后添加文本;(append)
    • A: 在行末添加文本;
    • o: 在当前行后面插入一空行;
    • O: 在当前行前面插入一空行;
# 示例: 利用可视块模式给多行代码增加注释
1. 在命令模式下,移动到要添加注释的第一行代码, 按 "^" 来到行首;
2. 按 ctrl + v 进入可视块模式;
3. 使用 j 向下连续选中要添加的代码行;
4. 输入 I 进入编辑模式,并在行首插入, 注意,一定使用大写 I;
5. 输入 # 也就是注释符号;
6. 按下 ESC 返回到命令模式,返回之后,vi会在之前选中的每一行代码前插入 #;

2.8 分屏命令

  • 属于 vi 的高级命令,可以同时编辑和查看多个文件;
  • 末行命令主要是针对文件进行的操作:
    • 保存,退出,保存&退出,搜索&替换,另存,新建,浏览文件;
    • :e .: 会打开内置的文件浏览器,浏览当前目录下的文件;
    • :n 文件名: 新建文件;(new)
    • :w 文件名: 另存为,但是仍然编辑当前文件,并不会切换文件;(write)
      • 在实际开发中,可以使用 w 命令阶段性的备份代码;
  • 分屏命令
    • 使用分屏命令,可以同时编辑和查看多个文件;
    • :sp [文件名]: 横向增加分屏;(split)
    • :vsp [文件名]: 纵向增加分屏;(vertical split)
  • 切换分屏窗口
    • 分屏窗口都是基于 ctrl + W 这个快捷键的,(w = window)
    • ctrl + w + w: 切换到下一个窗口;
    • ctrl + w + r: 互换窗口;(reverse)
    • ctrl + w + c: 关闭当前窗口,但是不能关闭最后一个窗口;(close)
    • ctrl + w + q: 退出当前窗口,如果是最后一个窗口,则关闭 vi;(quit)
    • ctrl + w + o: 关闭其他窗口;(other)

 

参考资料:

おすすめ

転載: blog.csdn.net/gavin__fan/article/details/102752755
おすすめ