vi 是 unix 家族下最功能强大的文字编辑器,而 vim 則是 vi 的加强版,

编辑模式

  指令 說明
* i 在游標位置進入編輯模式
  I 在游標行的第一個非空白字元進入編輯模式
* a 在游標位置後進入編輯模式
* A 在游標行的最後一個字元進入編輯模式
* o 向下新增一行,並進入編輯模式
  O 向上新增一行,並進入編輯模式
  cc 刪除游標行,並進入編輯模式
* [ESC] 取消指令或退出編輯模式

游标移动

  指令 說明
* gg 移到第一行
* G 移到最後一行
* 行數 → G 移動到第 n 行
  0 移動到該行最前面
  $ 移動到該行最後面
  字數 → [Space] 向右移動 n 個字元
* 行數 → [Enter] 向下移動 n 行

标记与复制

  指令 說明
* v 開始字串標記
* V 開始行標記
* v → [Ctrl]-V 開始區塊標記
* d 刪除標記的內容
* y 複製標記的內容
* yy 複製游標行
  yG 複製游標行到最後一行
  y1G 複製游標行到第一行
  y$ 複製游標處到最後一個字元
  y0 複製游標處到第一個字元
* p 在下一行貼上複製或刪除的內容
  P 在上一行貼上複製或刪除的內容
* [Ctrl]-R → 0 在下一行貼上複製或刪除的內容,適用於編輯模式及指令行

搜尋與取代

  指令 說明
* /搜尋字串 向下搜尋字串
  /\c搜尋字串 向下搜尋字串,不分大小寫
* * 將游標移到字串上,直接按 "*" 也可以做向下搜尋
  ?搜尋字串 向上搜尋字串
  ?\c搜尋字串 向上搜尋字串,不分大小寫
* :set ic 搜尋時不分大小寫
* :set noic 搜尋時要分大小寫
* n 繼續下一個搜尋結果
* N 繼續上一個搜尋結果
* :起始行,終止行s/搜尋字串/取代字串/gic 從第 n 行到第 n 行取代字串 (後面的 g: 整行全部 i: 不分大小寫 c: 詢問)
* :1,$s/搜尋字串/取代字串/gic 全部取代字串 (後面的 g: 整行全部 i: 不分大小寫 c: 詢問)

刪除

  指令 說明
* dd 刪除游標行
* 行數 → dd 刪除 n 行
* dG 刪除游標行到最後一行
  d1G 刪除游標行到第一行
* d$ 刪除游標處到最後一個字元
  d0 刪除游標處到第一個字元

檔案功能

  指令 說明
* :w 存檔 (加 ! 表示強制存檔)
* :w 檔案名稱 另存新檔
* :q 退出 vi (加 ! 表示不存檔強制退出)
* :wq 存檔並退出 vi
* :x 存檔並退出 vi
  :w !sudo tee % 當你編輯好檔案要存檔時,卻發現沒有寫入檔案的權限! 用這會指令可以讓你直接以 root 的權限存檔
* :e 檔案名稱 編輯其它檔案
* :e! 還原至檔案編修前的狀態
  :r 檔案名稱 讀入檔案內容,並加到游標行的後面
* :n 切換到下一個開啟的檔案
* :N 切換到上一個開啟的檔案
* :set nu 顯示行號
* :set nonu 取消行號顯示
* :files 列出所有開啟的檔案
* :Ex 開啟檔案瀏覽器
* :Ex 路徑 於指定路徑開啟檔案瀏覽器
  :Hex 分割水平視窗後,再開啟檔案瀏覽器
  :Vex 分割垂直視窗後,再開啟檔案瀏覽器
  :Tex 新增頁籤後,再開啟檔案瀏覽器
  :Hex 路徑 分割水平視窗後,再於指定路徑開啟檔案瀏覽器
  :Vex 路徑 分割垂直視窗後,再於指定路徑開啟檔案瀏覽器
  :Tex 路徑 新增頁籤後,再於指定路徑開啟檔案瀏覽器

視窗分割

  指令 說明
* :new 新增水平分割視窗
* :new 檔案名稱 新增水平分割視窗,並在新增的視窗載入檔案
* :vnew 新增垂直分割視窗
* :vnew 檔案名稱 新增垂直分割視窗,並在新增的視窗載入檔案
  :sp 新增水平分割視窗,並在新增的視窗載入目前的檔案
  :sp 檔案名稱 新增水平分割視窗,並在新增的視窗載入檔案
  :vsp 新增垂直分割視窗,並在新增的視窗載入目前的檔案
  :vsp 檔案名稱 新增垂直分割視窗,並在新增的視窗載入檔案
* [Ctrl]-W → [方向鍵] 切換視窗
* :only 僅保留目前的視窗

頁籤

  指令 說明
* :tabe 新增頁籤
* :tabe 檔案名稱 新增頁籤,並在新頁籤載入檔案
  :tabc 關閉目前的頁籤,等同 :q
  :tabo 關閉所有頁籤
  :tabn 移至下一個頁籤
  :tabp 移至上一個頁籤
* gt 移至下一個頁籤
* gT 移至上一個頁籤
* :tabfirst 移至第一個頁籤
* :tablast 移至最後一個頁籤
* :tabm 頁籤編號 移至特定編號的頁籤 (編號從 0 開始)
  :tabs 列出所有頁籤

其它指令

  指令 說明
* J 將游標行與下一行合併
* u 還原指令
* [Ctrl]-R 重做指令
* [Ctrl]-N 自動補齊曾輸入過的單字
* . 重覆上一個指令
  ! 命令 執行 linux 指令,並顯示執行結果
  TOhtml 將目前編輯的檔案轉換成 HTML 原始碼 (會新增一個水平分割視窗)

檔案瀏覽器操作

請先以 :Ex 相關指令進入檔案瀏覽器

  指令 說明
* - 到上層目錄
* d 建立目錄
* D 刪除目錄
* R 重新命名
* s 切換排序方式
  r 切換升冪/降冪排序
  i 切換檔案的排列方式
* / 搜尋字串
  x 執行檔案
* o 新增水平視窗
* v 新增垂直視窗

vim 的設定檔

通常我會編輯 /etc/vimrc,在檔案最後加入:

" 顯示列號
set number
" 語法高亮度顯示
syntax on
" 標記搜尋到的字串
set hlsearch
" 自動縮排
set autoindent
" 顯示說明
set ruler
" 顯示編輯狀態
set showmode
" 設定註解的顏色
highlight Comment ctermfg=cyan
" 設定搜尋到的字串顏色
highlight Search term=reverse ctermbg= ctermfg=
" 設定 tab 鍵的字元數
set tabstop=

转自:访问

最新文章

  1. svm心得体会(2)
  2. SQL 统计两个表的数据,按同一日期分组
  3. 【Win10应用开发】自适应磁贴中的分组
  4. 记一次使用jQuery清空元素
  5. 标准IDispose模式浅析
  6. Java WEB —— XML
  7. Swift - defer关键字(推迟执行)
  8. 简单使用SimpleCursorAdapter
  9. 使用CSS3制图
  10. HttpTest4Net
  11. [转]JavaScript通过参数动态调用函数——js中eval实现反射
  12. JSP 学习笔记
  13. windows10滑轮bug
  14. Flutter控制屏幕旋转
  15. 【转载】利用window.performance.timing进行性能分析
  16. selenium 打开新标签页(非窗口)
  17. 报错:[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop bei
  18. Lucene实战之关键字匹配多个字段
  19. win8.1下cocos2d-x 3.x环境搭建
  20. selenium + python自动化测试unittest框架学习(六)分页

热门文章

  1. g2o error
  2. C#操作xml文件:使用XmlDocument 实现读取和写入
  3. sql: MySQL and Microsoft SQL Server Stored Procedures IN, OUT using csharp code
  4. BZOJ4602: [Sdoi2016]齿轮(并查集 启发式合并)
  5. JS获取第二个横杠后面的内容
  6. 简析 Tomcat 、Nginx 与 Apache 的区别
  7. maven配置以及在eclipse Mars2中的使用
  8. spring cloud zuul 配置
  9. Python中的基础数据类型
  10. 使用Virtual Audio Cable软件实现电脑混音支持电脑录音