Linux經常使用命令-vi/vim

Linux--vi/vim

  vi 文本編輯器    (vim vi的加強版本)

  打開文件

vim [option] … file...vim

+# 打開文件後,讓光標處於第#行的行首

+/PATTERN 打開文件後,光標處於第一個被parrent匹配到的行首

-b file 二進制方式打開文件

-d file1 file2 對比多個文件

-m file 只讀打開文件

-e 直接進入ex 模式

若是該文件存在,文件被打開並顯示內容windows

若是文件不存在,當編輯後第一次存盤時建立它編輯器

  vim的模式

按鍵行爲是依賴於vim的模式spa

  • 命令模式:默認模式,移動光標,剪切/粘貼文本
  • 插入或者編輯模式:修改文本
  • 擴展命令模式(末行模式):保存、退出等

esc 鍵 退出當前模式unix

ms

  模式轉換

  • 命令模式 —> 插入模式
    • i 在光標所在處輸入
    • I 在當前光標所在行的行首輸入
    • a 在光標所在處後面輸入
    • A 在光標所在行的行尾輸入
    • o 在當前光標所在行的下方打開一個新行
    • O 在當前光標所在行的上方打開一個新行
  • 插入模式 —> 命令模式
    • esc
  • 命令模式—> 末行模式
  • 擴展命令模式—>命令模式
    • esc enter
    • esc esc

  關閉文件

  • 擴展命令模式
    • :q 退出
    • :q! 強制退出
    • :wq 保存退出
    • :x 保存退出
  • 命令模式
    • ZZ 保存退出
    • ZQ 不保存退出

  擴展命令模式

  • 按「:」進入ex模式
  • 建立一個命令提示符:處於底部的屏幕左側
  • 命令:
    • w 寫(存)磁盤文件
    • wq 保存並退出
    • x 寫入並退出
    • q 退出
    • q! 不存盤退出
    • r filename 讀文件內容到當前文件中
    • w filename 將當前文件內容寫入另一個文件,另存爲
    • !command 執行命令
    • r!command 讀入命令的輸出

命令模式光標跳轉code

  • 字符鍵跳轉
    • h 左
    • l 右
    • j 下
    • k 上
    • # command 跳轉#個字數的字符
  • 單詞間跳轉
    • w 下一個單詞的次首
    • e 當前或者下一個單詞的詞尾
    • b 當前或者前一個單詞的詞首
    • #command 跳轉#個單詞
  • 當前頁跳轉
    • H 頁首
    • M 中間
    • L 頁底
    • zt 將光標所在行移動到屏幕頂端
    • zz 將光標所在行移動到屏幕中間
    • zb 將光標所在行移動到屏幕底端
  • 行首行尾跳轉
    • ^ 跳轉至行首的第一個非空白字符
    • 0 跳轉至行首
    • $ 跳轉至行尾
  • 行間移動
    • #G 擴展命令模式下:#跳轉至第#行
    • G 最後一行
    • 1G gg 第一行
  • 句間移動:(.空格爲一句)
    • ):下一句
    • (: 上一句
  • 段落間移動(空行)
    • } 下一段
    • { 上一段
  • 翻屏操做
    • ctrl+f 向文件尾部翻一屏
    • ctrl+b 向文件首部翻一屏
    • ctrl+d 向文件尾部翻半屏
    • ctrl+u 向文件首部翻半屏

  命令模式操做

  • 字符編輯
    • x 刪除光標處的字符
    • #x:刪除#個字符
    • xp 交換光標所在處的字符與後面的字符
    • ~ 轉換大小寫
    • J 刪除當前行後的換行符
  • 替換
    • r 替換光標所在處的字符
    • R 切換成替換模式
  • 刪除
    • d 刪除,能夠結合光標跳轉字符
    • d$ 刪除到行尾
    • d^ 刪除到非空行首
    • d0 刪除到行首
    • dw: 刪除一個單詞
    • de: 向後刪除一個單詞
    • db 想前刪除一個單詞
    • \COMMAND
    • dd 刪除光標所在的行
    • #dd 多行刪除
    • dgg 刪除到文件首部
    • dG 刪除到文件尾部
    • D 至關於d$
  • 複製
    • y 複製,能夠結合光標跳轉字符
    • y$
    • y0
    • y^
    • ye
    • yw
    • yb
    • #command
    • yy 複製行
    • #yy 複製多行
    • Y 複製整行
  • 粘貼
    • p 若是是整行,則粘貼當前行所在行的下方,不然,則粘貼在當前光標所在行的後面
    • P若是是整行,則粘貼當前行所在行的上方,不然,則粘貼在當前光標所在行的前面
  • 改變命令
    • c 修改後切換成插入模式
    • c$
    • c^
    • c0
    • cb
    • ce
    • cw
    • #command
    • cc 刪除當前行並輸入新的內容
    • #cc
    • C 刪除當前光標至行尾,並切換成插入模式
  • 10ialex [esc] 粘貼10次alex
  • 查找
    • /pattern 從當前光標所在處向文件底部查找
    • ?pattern 從當前光標所在處向文件首部查找
    • n 與命令同方向
    • N 與命令反方向
  • 撤銷更改
    • u 撤銷最近的更改
    • #u 撤銷以前屢次更改
    • U 撤銷光標落在這行後全部此行的更改
    • ctrl+r 重作最後的 撤銷更改
    • . 重複前一個操做
    • n. 重複前一個操做n次

  擴展命令模式

  地址定界

:start,endorm

# 具體第#行blog

#,# 從左側#表示起始行,到右側#表示結尾行進程

#,+# 從左側#表示的起始行,加上右側#表示的行數 :2,+3 表示2到5行io

. 當前行

$ 最後一行

$-# 倒數第#+1行

.,$-1至關於當前行到倒數第二行

% 全文

/pat1/,/pat2/ 從第一個被pat1匹配到的行開始,一直到第一次被pat2匹配到的行開始

#, /pat/

/pat/,$

  使用方式 後跟一個編輯命令

  • d
  • y
  • w file :將範圍內的行另存到指定的文件中
  • r file 在指定位置插入指定文件中的內容

  查找並替換

  • :s 在擴展模式下完成查找替換操做
  • 格式 :s/要查找的內容/替換爲的內容/裝飾器
    • 要查找的內容:可以使用模式
    • 要替換的內容:不能使用模式,但可使用\1,\2等,還可使用「&」引用前面查找到整個內容
    • 修飾符
      • i 忽略大小寫
      • g 全局替換 默認狀況下,每一行至替換第一個出現的
      • gc 全局替換,每次替換前詢問
    • 查找替換中的分隔符/能夠替換成其餘字符
      • @
      • #

  可視化模式

  • 容許選擇的文本塊
    • v 面向字符
    • V 面向行
    • ctrl -v 面向塊
    • 能夠化鍵能夠與移動鍵結合使用
      • w )} 箭頭等
    • 突出顯示的文字能夠被刪除,複製,變動,過濾,收拾,替換等

  多文件操做

vim file1 file2 file3

  • :next 下一個
  • :prev 前一個
  • :first 第一個
  • :last 最後一個
  • :wall 保存全部
  • :qall 退出全部
  • :wqall

  使用多個窗口

  • 多文件分割
    • vim -o|-O file1 file2
    • -o 水平分割
    • -O 垂直分割
    • 切換 ctrl+w
  • 單文件分割
    • ctrl-w,s 水平分割
    • ctrl-w,v 垂直分割
    • ctrl-w,q 取消相鄰窗口
    • ctrl-w,o 取消所有窗口
    • :wqall

  定製vim的工做特性

  • 配置文件:永久生效
    • 全局:/etc/vimrc
    • 我的:~/.vimrc
  • 擴展模式:當前vim進程有效
    • 行號 set nu set nonu
    • 忽略字符大小寫(搜索) set ic set noic
    • 自動縮進(和上一行對齊) set ai set noai
    • 高亮搜索 set hlsearch set nohlsearch
    • 語法高亮 syntax on syntax off
    • 文件格式
      • 啓用windows格式: set fileformat=dos
      • 啓用unix格式:set fileformat=unix
      • 簡寫 set ff=doc|unix
    • 設置貫標所在行的標識線 set cul set nocul
    • 獲取幫助 :set all
    • vim 內置幫助
      • :help
      • :help topic
      • vimtutor

相關文章
相關標籤/搜索