Linux文本編輯器
Linux系統下有很多文本編輯器。
按編輯區域:
-
行編輯器 ed
-
全屏編輯器 vi
按運行環境: -
命令行控制臺編輯器 vi
-
X Window圖形界面編輯器 gedit
ed
它是一個很古老的行編輯器,vi這些編輯器都是ed演化而來。
每次只能對一行進行操作。
vi和vim
- vi在是UNIX平臺上歷史悠久的編輯器,是“visual interface”的縮寫,vi是UNIX平臺上可視化編輯器(或者說基于屏幕的編輯器)的代表
- vim意為vi IMproved,增強版vi,里面加入了如彩色與高亮顯示,多窗口分屏等特性
emacs
emacs編輯器是自由軟件基金會發行的軟件產品
。emacs的功能很強大,使用它幾乎可以解決用戶與操作系統交互中的所有問題。
gedit
它是一個在GNOME桌面環境下兼容UTF-8的文本編輯器。
gedit包含語法高亮和標簽編輯多個文件的功能,對中文支持很好,支持包括GB2312、GBK在內的多種字符編碼。
vi
vi 模式切換
文件打開
- vi /path/to/file
- vi +n filename
打開文件后把光標置于第n行 - vi + filename
打開文件后把光標置于最后一行 - vi filename1 filenam2 filename3…
末行模式下采用 e filename進行切換:e filename
末行模式-文件保存并退出
:q #quit
:q! #強制退出
:w #write
:w filename #另存為
:wq #寫入后退出
:wq! #寫入后退出
末行模式-設置行號
:set nu | :set number #顯示所有行號:nu | :number #顯示光標所在行號:set nonu | :set nonumber #取消行號顯示vi ~/.vimrc 長期保存
末行模式-搜索
- / < pattern> 向光標以下搜索
- ? < pattern> 向光標以上搜索
- n 向下搜索下一個匹配項
- N 向上搜索上一個匹配項
末行模式-替換
:s/x/y
把光標所在行首次出現的x替換為y
:s/x/y/g
把光標所在行中所有的x替換為y
:n,m s/x/y/g
把第n行到m行中所有的x替換為y
:% s/x/y/g
把當前文件中所有的x替換為y
命令模式-移動光標
- h(左),j(下),k(上),l(右) 上下左右鍵
- 0,^ 移動到行首
- $ 移動到行未
- w 向下移動到一個字首 w
- e 向下移動到一個字尾 e
- b 向上移動到一個字首 b
- Ctrl + b | f | u | d
上翻一頁 | 下翻一頁 | 上翻半頁 | 下翻半頁 - gg | G 定位第一行行首
- G 定位末行行首
- gg | H | G 定位到第n行
- + 向下移動n行
- - 向上移動n行
- ( 上一句
- ) 下一句
- { 上一段
- } 當前段
命令模式-刪除&恢復
-
x | x 刪除n字符
-
dd | dd 刪除n行
-
u 撤銷上一步操作
-
U 撤銷對當前行的所有操作
命令模式-復制&粘貼
- yy | yy 復制
- p 粘貼
命令模式-替換
- r |< n > r
替換光標所在字符(相同字符)
自動退出 - R
進入替換模式
替換光標所在字符,直到按下Esc
不會自動退出
命令模式-進入插入模式
-
i 在光標左側插入
-
a 在光標右側插入
-
o 在光標所在行的下一行插入
-
s 刪除光標所在字符
-
I 在光標所在行首插入
-
A 在光標所在行尾插入
-
O 在光標所在行的上一行插入
-
S 刪除光標所在行
vi與Shell交互
在末行模式下用“!”符號來訪問Linux的Shell
:!cat /etc/passwd | more
:! /bin/bash
文本格式轉換-UNIX2dos和dos2UNIX
- Windows 換行結束符號有兩個控制字符,一個是歸位字符(carriage return,^M),另一個是換行字符(new line,^J)。
- Linux中只使用一個換行字符\n(功能同^J)。
unix2dos filename
unix2dos –n filename newfilename
補充
命令模式下:
ZZ 保存退出
末行模式下:
:x 保存退出(低版本vi可能無效)
命令模式下:
t: 光標移動到目標字符前
T: 光標反向移動直到目標字符后
< n >t< pattern>
f: 行內搜索目標字符
F: 行內反向搜索目標字符
< n >f< pattern>
刪除文本所有內容
gg //跳到第一行
dG //刪除所有內容
刪除指定行之間的內容
: n,m d //刪除第n到第m行之間的內容