其他討論區 > 課後溫習+認證考試

vi 使用鍵

(1/2) > >>

小徒兒:
http://www.study-area.net/tips/vim/Vim-9.html#set

vi 使用有分為 1.command mode 2.insert mod 3. ext mode

從insert mode -> command mode 請按esc
從command mode --> ext mode 請按 :
從comand mode -> insert mode 請按 i

在command mode裏可對文件進行編輯

如將第345行內容移至最後:  要按 3G3yyGp

將游標移至最後一行並插入一行為: Go

將所有的123換為456: /123 enter c3l 456 esc n. n. n. 直至所有的 123被換成456



nG                                             到第n行 G                                               到最後一行^g                                              顯示游標所在之行數  ^f                                               視窗下移一螢幕^b                                              視窗上移一螢幕


x                                         刪除游標所在之字元dd                                       刪除一行
ndd                                     刪除n行
u                                         undo上一命令
p,P                                      貼回
/string                                 找字串
:q!                                       quit
:zz                                       存檔(原名)
:w! filename                       存檔為filename
:set ic                                  忽略大小寫
:set nu                                 列出行數
:1,$ s/string1/string2/g       更改字串
:n1,n2 w! filename             將n1到n2行寫入
:r filename                          讀入filename


#資料來源phys.cts.nthu.edu.tw/workshop/focus/20060225/unix.ppt
------------------------------------------------------------------------------

跳至ext mode

設定顯示每一行的行號 :set number

設定縮排:set ai

設定tab位置 10:set tab 10

設為ms-dos換行形式 :set tx

---------------------------------------------------------------------------------

小徒兒:
^ 移到游標目前所在文字列第一個非空白的字符
$ 移到游標目前所在文字列的結尾

H 移到第一行
G  or L 移到最後一行頭
 
右手鍵摸摸看(有凸出一點的) 是 j

h #go to the head of line
j #jump down
k #klimb up
l #go tail of line

h  j k   l

< v  ^ >

y3l  複製(yank)三個字符
c3l  改變(change)三個字符
d3l  刪除(delete)三個字符

yw  複製(yank)一個單字
cw  改變(change)一個單字
d3w  刪除(delete)三個單字

yy 複製現行一行
dd 刪除現行一行
 
3yy 複製現行游標往下三行

dG 刪除到end-of-file
yG 複製到end-of-file
cG 改變到end-of-file

--------------------------------------------------------
將abc替換成def(對1-最後一列進行處理)
1,$s/abc/def/g

將abc替換成def(對11-22列進行處理)
11,22s/abc/def/g

----------------------------------------------------------

.  代表重複前一個編輯動作
u 代表undo 取消前一個編輯動作
r undo按過頭,按r可在編輯歷史中游走

小徒兒:
將unix 命令的結果讀到檔案中
:r !date


假設你正在編輯一個檔案,想從一個phone檔案中讀取四個電話號碼,依照字母的順序.
:r !sort phone

將讀進來的檔案放在目前檔案的結尾
:$r /home/tim/data

將讀進來的檔案放在185行後插入
:185r /home/tim/data


可以將/及?搜尋作業與命令組合來更改文件,例如和c或d組合
:d?move

小徒兒:
:set cindent

:w hello.C

     
--- 代碼: ---#include <stream.h>

     void main()
     {
                           cout << "hello, world!\n ;
                }
   
--- 程式碼結尾 ---


 :roll: 在第5行忘了加上關閉的引號     

:make hello


--- 代碼: ---hello.C:5:unterminated string or character
         make: *** [hello] Error 1

--- 程式碼結尾 ---



:errlist

 :roll: :errlist 命令會將游標一到錯誤發生的那一行,並在狀態行顯示對應的錯誤訊息

以上是使用elvis的例子,在vim則用:cc來查看錯誤訊息,:errorformat來剖析錯誤檔案的內容




--------------------------------------------
心情小札
喜歡mr. vim (Bram Moolenaar) 如果你使用vim而且喜歡它, Moolenaar先生請求你對烏干達的孤兒作捐獻


--------------------------------------------

嗯...vi for java coding ???

小徒兒:

--- 代碼: ---:1,$
--- 程式碼結尾 ---

從第一行跑到最後一行


--- 代碼: ---:x,y
--- 程式碼結尾 ---

從第x行跑到第y行


--- 代碼: ---:x;y
--- 程式碼結尾 ---

從第x行跑到第y行,目前行會重設為x


--- 代碼: ---:0
--- 程式碼結尾 ---

跑到檔頭


--- 代碼: ---:$
--- 程式碼結尾 ---

跑到最後一行


--- 代碼: ---:3
--- 程式碼結尾 ---

跑到第三行


--- 代碼: ---:.
--- 程式碼結尾 ---

目前行


--- 代碼: ---:%
--- 程式碼結尾 ---

從頭跑到尾,等於1,$


--- 代碼: ---:/SHIT/
--- 程式碼結尾 ---

向後跑一直到有XX的行


--- 代碼: ---:?GOLD?
--- 程式碼結尾 ---

向後跑一直到有OO的行


--------------------------------------------------
啥??   師父曰:還要再跑77 49 行  xp

WUTIWUG

導覽

[0] 文章列表

[#] 下頁

前往完整版本