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 退出而 ...
随机推荐
- EBS DBA指南笔记(一)
第一章 ORACLE APPLICATIONS 的组件与架构 1.ebs组件的几大构成:客户端,form server,web server,concurrent processor,数据库.每个组 ...
- Jeff Atwood:Google的头号UI问题
谷歌在用户界面上追求的"极简主义"是让人叹为观止的.但是,他们首页上有个问题一直让我困惑不解.要知道,这个页面可是每天都被下载几百万次哦: 真有人在使用"I'm Feel ...
- “基于数据仓库的广东省高速公路一张网过渡期通行数据及异常分析系统"已被《计算机时代》录用
今天收到<计算机时代>编辑部寄来的稿件录用通知,本人撰写的论文"基于数据仓库的广东省高速公路一张网过渡期通行数据及异常分析系统",已被<计算机时代>录 ...
- 分布式进阶(十六)Zookeeper入门基础
Zookeeper入门基础 前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当 ...
- 【Unity插件】LitJson杂谈
距离上一次更新博客已有一段时间了,一实习就懒了,嘿嘿.这次谈一下在实习里新碰到的一个Unity插件--LitJson(也可以去官网下载最新版). 开场白 LitJson是一个开源项目,比较小巧轻便,安 ...
- JavaScript进阶(二)在一个JS文件中引用另一个JS文件
在一个JS文件中引用另一个JS文件 转载地址:http://blog.csdn.net/zndxlxm/article/details/7875787 方法一 在调用文件的顶部加入下例代码 ...
- 如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析
转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/51159419 如何优化你的布局层级结构之RelativeLayout和LinearLa ...
- ORM对象关系映射之GreenDAO自定义属性转换器PropertyConverter
在使用GreenDAO定义实体的属性时候,通常来说定义的实体属性名就是对应的表的字段名.实体中属性的类型(如Long.String等)就是表的字段名类型,但是我们难免会有不一样的需求,比如实体中我定义 ...
- 开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
2015年1月31日,作为KEYNOTE演讲嘉宾,我和来自全国各地的开发人员分享了作为一名MVP的一些体会. Keynote – Open Source, Free Tools and Cross P ...
- 《java入门第一季》之面向对象面试题(this和super的区别)
this和super的区别? 分别是什么呢? this代表本类对象的引用. super代表父类存储空间的标识(可以理解为父类引用,可以操作父类的成员) 怎么用呢? A:调用成员变量 this.成员变量 ...