vi 常用命令使用說明
vi是一種文字模式全螢幕文字編輯軟體(Text Editor)。對初學者來說,vi是個很難用的工具,一般需要2個星期的時間才能得心應手。之所以介紹vi,其理由如下:
- vi是Unix上的標準文字編輯軟體,不管哪個版本的Unix系統都會提供。想靠開發Unix的軟體混飯吃,必須熟練vi。
- vi難用的原因之一,是只有文字模式,不能使用滑鼠。但也正因為如此,熟練者不用移動手去操作滑鼠,寫起程式來特別快.
- vi難用的原因之二,是同一個畫面分成三種操作模式,每種模式又可下達複雜指令,初學者常會搞混。但vi所提供的複雜指令,對寫程式特別好用,一經試用便覺威力無窮。
另一個跟vi很像的軟體叫vim,算是vi的加強版,vi有的功能vim都有,還可以使用游標鍵。此處只介紹vi。
vi在操作上分成下面三種模式,你若搞不清楚現在在哪種模式,只用按鍵盤左上角的ESC鍵,就可以跳到Command Mode - Command mode( c-mode):
您一進入 VI 就是處於 c-mode,只能下按鍵指令,不能輸入文字。
這些指令可能是游標移動的指令,也可能是編輯指令或尋找替換指令。 - Input mode(i-mode):
按 i 就會進入 i-mode,此時才可以鍵入文字,寫您的文章,按 Esc 又會回到 c-mode。 - Ed mode(command-line mode,e-mode):
按冒號:(別忘了 Shift 鍵)就會進入 e-mode,左下角會有一個冒號:出現,可下 ed 指令。ed是Unix裡另一種非常古老的行模式Text Editor。所謂行模式,是一次只能觀看編輯一行文字,之所以會有這種模式,是因為遠古時代終端機的游標只能往下走(就像DOS視窗!),所以編輯軟體就只好這樣設計了。vi是由ed改良來的,因此保有ed的指令。
也是按 Esc 回 c-mode。反正正常狀態都是處於 c-mode,這樣才不會把您辛苦打字的文章給隨便搞亂掉。 - 開檔:
vi test.txt
或進入 vi 後,使用冒號命令 :e test.txt,就可以編輯 test.txt 這個檔。
如果 test.txt 不存在的話,就會開一個以 test.txt 為名的新檔案。
5.游標移動:
c-mode之下:h向左,j向下,k向上,l向右,Ctrl-F下一頁,Ctrl-B上一頁,Ctrl-G顯示檔案的狀態,$到行尾,^到行頭
e-mode之下:輸入數字n就會移到第n行
- 編寫文件:
在c-mode底下可用的命令:
u: undo上一個命令
o: 在此行的後面新增一行
O: 在此行的前面新增一行
i: 在游標的前一個位置插入字元
I: 在此行的開頭插入字元
a: 在游標的後一個位置插入字元
A: 在此行的最後面加入字元
r: 更改游標所在的字元
R: 覆蓋游標後的字元(一直打字就一直蓋掉,直到按ESC)
cl: 改掉一個字元
cw: 把游標所在的一整個字改掉(此字最後一個字母會變成$, 直到按ESC前的所有輸入都會用來改掉這一個字)
cc: 改掉游標所在的一整行
x: 刪除一個字元
dw: 刪除一整個字
dd: 刪除一整行
D: 刪除到行尾
yy: 複製一整行
yw: 複製一整個字
Y: 複製一整行
p: 貼在游標後(下)
P: 貼在游標前(上)
.: 重複上一個編輯命令
/: 向下搜尋(會在螢幕左下角出現/符號,只要輸入要找的字然後Enter即可)
?: 向上搜尋
n: 搜尋下一個
N: 搜尋上一個
以上命令除uoOD以外,前面都可以加上數字,表示此命令執行的次數,如5dd表示刪除五行,5yw複製五個字
7.e-mode下面的命令:
如果您寫好您的文件,就可以按Esc回到 c-mode,然後按:到e-mode,在e-mode底下的命令為
w: 存檔
w 檔名: 另存到檔名
q: 離開vi
wq: 存檔然後離開
q!: 強迫離開vi
w!: 強迫存檔
x: 存檔後離開, 但若檔案沒有修改,則不會存檔
!gcc test.c: !可用來呼叫shell執行命令, 此例中呼叫gcc編譯test.c
shell: 呼叫shell(回到命令列), 在shell中打exit則回到vi
r 檔名: 將檔名的內容讀到游標所在的行後
1,$s/abc/def/g: 由第一行到最後一行將所有的abc取代成def,若最一個/g不打, 則只取代每行的第一個
1,10s/abc/def/g:由第一行到第十行將所有的abc取代成def
基本Unix操作指令df 顯示系統可使用空間
ls 顯示資料檔案, ls -l可顯示更多的資訊
cp 複製檔案 cp file1 file2
mv 更改檔案名稱 mv file1 file2
rm 刪除檔案名稱 rm file1
passwd 更改password
mkdir 建立目錄 mkdir 目錄名稱
rmdir 刪除目錄 rmdir 目錄名稱
man 找出相關指令的說明,類似help的功能 man finger
vi 常用命令使用說明的更多相关文章
- vi 常用命令行
vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I ...
- Linux vi常用命令
vi常用命令[Ctrl] + [f] 屏幕『向前』移动一页(常用)[Ctrl] + [b] 屏幕『向后』移动一页(常用)0 这是数字『 0 』:移动到这一行的最前面字符处(常用)$ 移动到这一行的最后 ...
- [转]vi 常用命令行
From : http://www.cnblogs.com/sunormoon/archive/2012/02/10/2345326.html vi 常用命令行 1.vi 模式 a) 一般模式: v ...
- Linux笔记:vi常用命令
vi编辑器是所有Unix及Linux系统下标准的编辑器,在很多时候我们都需要使用vi修改服务端配置,vi其实非常强大,只要命令使用熟练的情况下,编辑速度并不亚于现在的图形化编辑器,这里简单地介绍一下它 ...
- Linux的vi常用命令详解
1.vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: ...
- vi常用命令及快捷键
vi常用快捷键 1)移动光标 h :光标左移一个字符j :光标上移一个字符k :光标下移一个字符l :光标右移一个字符 0 :光标移至行首$ :光标移至行尾 H :光标移至屏幕首行M :光标移至屏幕中 ...
- Linux学习笔记:vi常用命令
在Linux系统中常用vi命令进行文本编辑. vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器.Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved), ...
- Linux入门学习笔记1:VI常用命令
常用命令 yy 复制 p 黏贴 shift+v 多行选中 shift+ctrl+< 左移 shift+ctrl+> 右移 ndd 删除光标所在行及其后n-1行 i 进入编辑状态 esc 退 ...
- linux之文本编辑器vi常用命令
由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令 1.打开命令: vi+filename (还有各种打开的姿势,只不过我比较顺手这个) 2.退出命令: :q 退出而 ...
随机推荐
- Swift基础之Swift调用OC语言文件使用步骤
Swift语言中,有很多封装类并没有,如果需要使用到,就需要桥接OC语言中的类,这时候就需要使用桥接头文件,一下是使用的步骤: 创建一个Swift项目Demo,然后新建一个OC语言的文件 如图: 创建 ...
- Cocos2D:塔防游戏制作之旅(十)
最终,draw方法显示这些路径点被放置在哪里,并且绘制出路径点之间的连线,它们仅仅被用作调试.一个成品游戏不应该绘制敌人的路径 - 那对于玩家来说太过容易了! 创建路径点的列表.打开HelloWorl ...
- 分布式进阶(五)之JSVC配置
应用场景:在linux系统上进行项目开发,在部署java项目时,常用方法就是写一个shell脚本,但当服务器重启了,经常会忘了启动shell脚本了.所以我们需要把自己的应用变成linux的服务,当服务 ...
- Cell自适应高度及自定义cell混合使…
第一部分:UItableViewCellAdaptionForHeight : cell的自适应高度 第二部分:CustomTableViewCell:自定义cell的混合使用(以简单通讯录为例) = ...
- Java接口interface
Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...
- JQuery设置checkbox的值,取checkbox的值,设置radio的值,取radio的值,设置下拉选select的值,取select的值
一.复选框设置参数 html代码如下: <div class="flsm_btns"> <input type="hidden&q ...
- VC和GCC静态变量析构顺序不同
VC和GCC静态变量析构顺序不同(金庆的专栏)静态变量析构顺序正常情况下是构造的反序.但是VC对DLL中的静态变量好像是需等待DLL卸载时再析构,表现为主程序中的静态变量先析构,DLL中的静态变量后析 ...
- 异常驱动的开发(Exception-Driven Development)
你的网站或应用程序存在哪些问题?如果你在等着用户来告诉你,那么你只能看到所有的问题中已经暴露的那极小的一部分.要知道,那只是"冰山一角"! 而且,如果你真的是在守株待兔,我不得不很 ...
- jquery sortable的拖动方法内容说明和示例详解(转载http://www.jb51.net/article/45803.htm)
所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象 ui.helper - 表示sortable元素的JQuery对象,通常是当前元素的克隆对象 u ...
- 浅析数据结构中栈与C实现
最近在搞摄像头驱动,o()︿︶)o 唉,别提有多烦,一堆寄存器就有人受的了--特么这不是单片机的开发,这是内核驱动开发-- 今天放松一下,我们来看看数据结构中的栈,这节的知识点可以说是数据结构中最容易 ...