2012年11月20日 星期二

[Linux] vi 與 vim 的指令整理


vi vim 的指令整理
vi unix 家族下最功能強大的文字編輯器,讓用戶只要使用一個鍵盤就可以完成所有的編輯。而 vim 則是 vi 的加強版,甚至在 Windows 上也找得到 vim 的芳蹤。但 vi/vim 眾多的指令卻經常令初學者卻步,以下就是我所整理出來那些令人卻步的指令:

編輯模式
指令
說明
*
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
在下一行貼上複製或刪除的內容,適用於編輯模式及指令行
搜尋與取代
指令
說明
*
/搜尋字串
向下搜尋字串
*
*
將游標移到字串上,直接按 “*” 也可以做向下搜尋
?搜尋字串
向上搜尋字串
*
:set ic
搜尋時不分大小寫
*
:set noic
搜尋時要分大小寫
*
n
繼續下一個搜尋結果
*
N
繼續上一個搜尋結果
*
:起始行,終止行s/搜尋字串/取代字串/gic
從第 n 行到第 n 行取代字串 (後面的 g: 整行全部, i: 不分大小寫,c: 詢問)
*
:1,$s/搜尋字串/取代字串/gic
全部取代字串 (後面的 g: 整行全部, i: 不分大小寫,
c:
詢問)
刪除
指令
說明
*
dd
刪除游標行
*
dG
刪除游標行到最後一行
d1G
刪除游標行到第一行
*
d$
刪除游標處到最後一個字元
d0
刪除游標處到第一個字元
檔案功能
指令
說明
*
:w
存檔 ( ! 表示強制存檔)
*
:w 檔案名稱
另存新檔
*
:wq
存檔並退出 vi
:e 檔案名稱
編輯其它檔案
*
:e!
還原至檔案編修前的狀態
:r 檔案名稱
讀入檔案內容,並加到游標行的後面
*
:n
切換到下一個開啟的檔案
*
:N
切換到上一個開啟的檔案
*
:set nu
顯示行號
*
:set nonu
取消行號顯示
*
:files
列出所有開啟的檔案
視窗分割
指令
說明
*
:new
新增水平視窗
*
:new 檔案名稱
新增水平視窗,並在新增的視窗載入檔案
*
:vnew
新增垂直視窗
*
:vnew 檔案名稱
新增垂直視窗,並在新增的視窗載入檔案
*
[Ctrl]-W → [方向鍵]
切換視窗
*
:only
僅保留目前的視窗
其它
*
指令
說明
*
J
將游標行與下一行合併
*
u
還原指令
*
[Ctrl]-R
重做指令
*
.
重覆上一個指令
命令
執行 linux 指令,並顯示執行結果
*
:q
退出 vi ( ! 表示強制退出)
vim 的設定檔
通常我會編輯 /etc/vimrc,在檔案最後加入:
" 顯示列號
set number
" 語法高亮度顯示
syntax on
" 標記搜尋到的字串
set hlsearch
" 自動縮排
set autoindent
" 顯示說明
set ruler
" 顯示編輯狀態
set showmode
" 設定註解的顏色
highlight Comment ctermfg=cyan
" 設定搜尋到的字串顏色
highlight Search term=reverse ctermbg=4 ctermfg=7
" 設定 tab 鍵的字元數
set tabstop=4

相關參考連結:

沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...