看板 NTUEE_VAL 關於我們 聯絡資訊
※ [本文轉錄自 arjuna 信箱] From: Wen-Nung Tsai <tsaiwn@csie.nctu.edu.tw> Newsgroups: csie.course.intro-cs.a,csie.course.intro-cs.b Subject: [FirstAid 資工人必學] 十分鐘愛上 vi 最好開兩個視窗, 一個看這篇, 一個練習 vi (不會開兩個窗的趕快找個會的教你一下!) 以下提到 <ESC> 表示按左上角的 Esc 鍵 (Escape鍵) 照著這裡說的一步一步做! 首先在命令提示下打入 vi xx.c 接著按RETURN或ENTER鍵 進入vi畫面後, 打 :abbr p printf 按ENTER鍵後再打i 然後接著將以下逐列敲進去, 不要敲錯任何字喔 #include<stdio.h> int main(){ int k; duoble x; for(k=1; k <= 5; ++k) { ww("Ha.."); ww("Ha.Ha.. "); x = 38.49; ww("Hee.."); ww("Heehee.."); putchar('H'); ww("How are you?"); } p("%f, byebye!", x); p("再見\n");; return 0; } 敲完上列按下ENTER鍵後就按鍵盤左上角的 <ESC> 鍵 然後打 :w 並按下ENTER鍵 有沒注意到剛剛打 p 按了空白鍵或按 ( 鍵之後p會自動變 printf ? 現在可打 :abbr 並按 ENTER 鍵看看 (請注意以後只要後面沒字就是須按 ENTER 鍵) 再來試著隨變按這些鍵: hjkl(小寫的HJKL)和 空白鍵 RETURN(或ENTER)鍵 -+ (減號鍵和加號鍵) 以及 上下左右鍵 試著打入一堆減號再按一堆 ENTER 鍵 如不小心發現打的字跑到文章中就快按 <ESC> 鍵 打入 /for 再打入 J (大寫的J, 注意 for 那列和 ++k 那列合併為一列) 然後再打 :w 並按下ENTER鍵 (存檔啦!) 再來打 :!cc xx.c ( 要求 C 的 compiler 編譯 xx.c 這程式檔案) 看到很多錯是不是? 按ENTER後應會回到vi的畫面 ------ ------ 打入:1 再打入 /uo 此時游標停在 uo 的 u 上 打入 xp (小寫x殺掉一字符, 小寫p則吐出剛剛殺掉的, 注意uo變ou) 打入 /ww 這表示要找到ww開頭的字 打入 cwprint<ESC> (注意 cw 表示要 change word, <ESC>表示 ESCape 鍵) 再打入 :w 再來打 :!! 它會又翻譯該程式, 錯誤變少了對不對? 再按 ENTER 鍵後又會回到vi的畫面 ------ ------ ------ ------ 打入:1 打入:1,$s/ww/printf/g (表示由line 1到 line $($代表最後一line)的 ww 都改為 printf 如果沒有最後那個 "g" 則只改每列第一次出現的) 打入 /bye 打入 yyppppp 接著打入 :.-5 打入 4dd 然後按兩下 ENTER 鍵後打 p (小寫 p) 打入 ddP (即dd 後馬上打大寫的P) 再打入 :w 再來打 :!! 這次翻譯該沒錯誤了對不對? 再按 ENTER 鍵後又會回到vi的畫面 打入 :!a.out 再打入 :!helpvi 回來後再打入 :!vihelp (P.S. 這 helpvi 和 vihelp 是很久以前我寫的, 可能不小心被系統管理員弄丟了) 滿意了? 打入 :q 現在你愛上 vi 了對不對 ? cvi (elvis改來的)處裡中文字不會有半字的問題, 但它缺了一些功能 例如vi認得前面提到的 :abbr 但是cvi不認得 又例如vi認得 :set nu 但是cvi不認得 自己試 :set 和 :set all 並隨便試試就知到了 如果你常會做一些設定, 可將這些設定放入 .exrc 檔案中 例如放以下這些在 .exrc set nu set autoindent abbr p printf( abbr w while abbr r return 再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思) 有好奇心的可以試 vilearn 其它一些常用指令: o (開始輸入新的 line, 大寫 O 則加在此列之前) 0 (跑到該列最左邊) $ (跑到該列最右邊) :$ 並按 ENTER鍵 則跑到最後一line :12 並按 ENTER鍵 則跑到line 12 Control_G 顯示目前 line number 最常按的鍵: <ESC> <ENTER> 減號鍵 空白鍵 h (小寫 h) 再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思) 再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思) 再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思) ========================================================= -- ------------------ 不要問我過得好不好 我的心事妳應該知道 -- end of forwarded message -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.209.4 ※ 編輯: arjuna 來自: 140.113.209.4 (03/23 11:18) ※ 編輯: arjuna 來自: 140.113.209.4 (03/23 11:22) ※ 編輯: arjuna 來自: 140.113.209.4 (03/23 11:22)