Introduction to Editors for Linux Outline vim 基本指令 自定 vim 設定檔 vimrc vim 進階技巧 emacs 基本指令 emacs 特殊功能 vim Overview 一般模式 vim 預設的模式 ID: 438844
Download Presentation The PPT/PDF document "Linux Programming Tutoring" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Linux Programming Tutoring
- Introduction
to Editors
for LinuxSlide2
Outline
vim
基本指令
自定
vim
設定檔
(.vimrc)
vim
進階技巧
emacs
基本指令
emacs
特殊功能Slide3
vim Overview
一般模式
vim
預設的模式
可以移動游標
『
刪除字元
』
或
『
刪除整行
』
也可以
『
複製、貼上
』
來處理你的文件資料
編輯模式
一般模式中按下
『
i
, I, o, O, a, A, r, R』
之後進入編輯模式
可編輯文件內容
按下
『Esc』
這個按鍵即可退出編輯模式
指令列命令模式
一般模式中輸入
『 : / ? 』
即可進入此模式
可以
『
搜尋資料
』
讀取、存檔、大量取代字元、離開
vi
、顯示行號Slide4
vi
m
Overview
一般模式
編輯模式
指令列模式
i,o,a
(
插入
)
r,R
(取代)
[ESC]
:,/,?
[ESC]Slide5
vim一般模式常用指令(1/2)
h
或 向左方向鍵
(←)
游標向左移動一個字元
j
或 向下方向鍵
(↓)
游標向下移動一個字元
k
或 向上方向鍵
(↑)游標向上移動一個字元
l 或 向右方向鍵(→)游標向右移動一個字元
nh / nj /
nk /nln為數字。
游標向左/下/
上/右移動
n
個字元
n
← / n
↓
/ n
↑
/ n
→
游標向左
/
下
/
上
/
右
移動
n
個字元
[Ctrl] + [f]
螢幕
『
向下
』
移動一頁
[Ctrl] + [b]
螢幕
『
向上
』
移動一頁
[Ctrl] + [d]
螢幕
『
向下
』
移動半頁
[Ctrl] + [u]
螢幕
『
向上
』
移動半頁
n<space>
n
為數字。按下數字後再按空白鍵,游標會向右移動這一行的
n
個字元Slide6
vim一般模式常用指令(2/2)
G
移動到這個檔案的最後一行
nG
n
為數字。移動到這個檔案的第
n
行
gg
移動到這個檔案的第一行x, X
x 向後刪除一個字元, X
為向前刪除一個字元dd / ndd刪除游標所在的那一 / n 列
yy / nyy
複製游標所在的那一 / n 行
p, Pp 為將已複製的資料在游標下一行貼上,
P 則為貼在游標上一行u
復原前一個動作[Ctrl]+r重做上一個動作
.
重複前一個動作Slide7
vim編輯模式常用指令
i
, I
進入插入模式
(Insert mode)
:
i
為從目前游標所在處插入I 為在目前所在行的第一個非空白字元處開始插入
a, A進入插入模式(Insert mode):a
為從目前游標所在的下一個字元處開始插入A 為從游標所在行的最後一個字元處開始插入
o, O進入插入模式(Insert mode):o 為在目前游標所在的下一行處插入新的一行O 為在目前游標所在處的上一行插入新的一行
r, R進入取代模式(Replace mode)
:r 只會取代游標所在的那一個字元一次
R會一直取代游標所在的文字,直到按下 ESC 為止[Esc]
退出編輯模式,回到一般模式中Slide8
vim指令列模式常用指令
:w / :w!
將編輯的資料寫入
/
強制寫入硬碟檔案中
:q / :q!
離開
/
強制離開 vi
:wq / :wq!儲存後離開
/ 強制儲存後離開ZZ
若檔案沒有更動,則不儲存離開若檔案已經被更動過,則儲存後離開:! command暫時離開
vi 到指令列模式下執行 command 的顯示結果
:set nu
顯示行號:set nonu
取消行號Slide9
vim搜尋及取代常用指令
/word
向游標之下尋找一個名稱為
word
的字串
?word
向游標之上尋找一個字串名稱為
word
的字串
nn 是英文按鍵。重複前一個搜尋的動作
NN 是英文按鍵。反向進行前一個搜尋動作
:n1,n2s/word1/word2/gn1 與
n2 為數字。在第 n1 與 n2 行之間尋找
word1 這個字串,並將該字串取代為 word2:1,$s/word1/word2/g
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2
:1,$s/word1/word2/gc同上。但取代前顯示提示字元給使用者確認Slide10
vim 環境設定
使用者
vim
設定檔為
~/.
vimrc
系統之
vim設定檔通常為
/etc/vim/vimrc 或 /etc/vimrc
一般模式下輸入 :set all 可顯示所有設定選項Slide11
vim常用設定
set nu
set
nonu
設定
/
取消 行號
set hlsearch
set nohlsearch設定
/ 取消 high light searchset autoindentset
noautoindent設定 / 取消自動縮排
set backup是否自動儲存備份檔set ruler
顯示右下角的一些狀態列說明syntax onsyntax off
設定
/ 取消 依據程式相關語法顯示不同顏色set bg
=darkset bg=light
可用以顯示不同的顏色色調,預設是 lightSlide12
.vimrc
設定範例
"
這個檔案的雙引號
(")
是註解
set
hlsearch
"
高亮度反白
set autoindent "自動縮排set ruler
"可顯示最後一行的狀態set
showmode "左下角那一行的狀態
set nu
“每行最前面顯示行號set
bg=dark "
顯示不同的底色色調
syntax
on
“
進行語法檢驗顏色顯示Slide13
vim 的暫存檔(1/2)
vim
會在與被編輯檔案的目錄下,建立一個
.
filename.swp
檔案
若
vim不正常關閉,下次再開啟時會顯示以下畫面Slide14
vim 的暫存檔(2/2)
[O]pen Read-Only
:
打開此檔案成為唯讀檔, 可以用在你只是想要查閱該檔案內容並不想要進行編輯行為時
(E)
dit
anyway
:還是用正常的方式打開你要編輯的那個檔案, 並不會載入暫存檔的內容
(R)ecover:載入暫存檔的內容,用在要救回之前未儲存的工作。 不過當你救回來並且儲存離開 vim 後,還是要手動自行刪除那個暫存檔
(D)elete
it:開啟檔案前會先將這個暫存檔刪除(Q)uit:按下 q 就離開
vim ,不會進行任何動作回到命令提示字元。(A)bort
:忽略這個編輯行為,與 quit 非常類似Slide15
vim
多重檔案編輯
:n
編輯下一個檔案
:N
編輯上一個檔案
:files
列出目前這個
vim
的開啟的所有檔案
想要將 A 檔案內的十條消息『移動
』到 B 檔案去,通常要開兩個 vim 視窗來複製, 偏偏每個 vim 都是獨立的,因此並沒有辦法在 A 檔案下達『
nyy 』再跑到 B 檔案去
『 p 』!此時這個多檔案編輯就派上用場了!Slide16
vim
多重視窗編輯
:sp [filename]
開啟一個新視窗,如果有加
filename
, 表示在新視窗開啟一個新檔案,否則表示兩個視窗為同一個檔案內容
[ctrl]+w+ j
[ctrl]+w+↓
按鍵的按法是:先按下
[ctrl] 不放, 再按下 w 後放開所有的按鍵,然後再按下 j (或向下方向鍵
),則游標可移動到下方的視窗[ctrl]+w+ k
[ctrl]+w+↑同上,不過游標移動到上面的視窗:vsp [filename]同sp,差別為視窗左右分割
[ctrl]+w+ h[ctrl]+w+
←游標移動到左方的視窗
[ctrl]+w+ l[ctrl]+w+
→游標移動到右方的視窗[ctrl]+w+ q
結束離開,等同於 :q Slide17
如果
emacs
是在
X
視窗啟動,則會自動開啟一個新視窗,如果不想如此可以下命令時加入
–
nw
選項:
emacs
快速入門
$emacs –nw
基本指令
C-x C-f
開啟新檔或舊檔C-x C-s
存檔C-x C-w
另存新檔
C-x
C-c
離開
註:
C-x
代表
Control xSlide18
emacs常用指令
C-b
或
←
游標向左移動一個字元
C-n
或
↓
游標向下移動一個字元
C-p
或
↑游標向上移動一個字元C-f 或
→游標向右移動一個字元C-v
螢幕『向下』
移動一頁M-v螢幕
『向上』移動一頁M-b
游標向左移動一個字(word)
M-f
游標向右移動一個字
(word)
C-a
/ M-a
移動到行首
/
句首
C-e /
M-e
移動到行尾
/
句尾
註:
M-x
代表
META x
若沒
META
鍵通常為
[ESC]
鍵Slide19
emacs常用指令
M-<
移動到檔頭
M->
移動到檔尾
C-d
刪除游標後一個字元
Backspace
刪除游標前一個字元
M-Backspace
刪除游標前一個字
(word)
M-d
刪除游標後一個字
(word)C-k / M-k
刪除從游標所在到行尾
/ 句尾
C-@
或
C-Space
再
C-w
先按
C-@
再移動游標後按
C-w
則刪除這範圍內的字
C-u
用來設定數字參數
例如:
C-u 20 C-n
向下移動
20
行
C-_
或
C-x u
Undo
C-g
取消某指令Slide20
emacs複製和貼上
C-y
yanking
只要用
kill (C-k, M-k
等
)
刪除
,
超過一個字的資料
,
emacs就會把它存起來
,然後
C-y 可以把它叫出來
。功能跟
Cut & Paste一樣
。
Kill
和
delete
不一樣
,
只有被
kill
掉的東西才能用
yank
吐回來
。
游標在同一地方不動
,
連續
kill
掉的資料會被當成一次
kill
掉的
,
yank
時會一起回來
。
M-w
先用
C-Space
或
C-@
設
,
然候把游標移到另一端
,
按
M-w
就可以把
mark
到
point
間的字存到
kill ring
上
。Slide21
emacs搜尋相關指令
C-s
向後搜尋
C-r
向前搜尋
找到了之後按
C-g
可以取消搜尋,跳回原來的
位置Slide22
emacs視窗相關指令
C-x 2
水平分割視窗
C-x 3
或
F2
垂直分割視窗
C-x >
視窗向右捲動
C-x <
視窗向左捲動
C-x o
切換至另一視窗
C-x 0
關閉目前視窗
C-x 1
關閉其他視窗,僅留此視窗
C-x b
切換
buffer
C-x k
關閉當前
buffer
C-x C-b
列出目前所有編輯中的緩衝區清單Slide23
emacs特殊功能
M-x shell
在
emacs
中開啟一個
shell
M-!
執行
external shell command
M-x
dired
或
C-x d
a file managerM-x
tetris俄羅斯方塊M-x
hanoiTowers of Hanoi game
M-x doctor
Emacs psychotherapist
M-x calculator
calculator
M-x calendar
calendar
M-x phases-of-moon
查詢月相
M-x compile
Invokes make
M-x
gdb
Invokes
gdbSlide24
Reference
vim
http://linux.vbird.org/linux_basic/0310vi.php
http://en.wikipedia.org/wiki/Vim_%28text_editor%29
emacs
http://www.gnu.org/software/emacs/tour/
http://en.wikipedia.org/wiki/Emacs
http://www.gnu.org/software/chinese/manual/TUTORIAL.zh
http://shelandy.blogspot.com/2008/01/eamcs.html