Linux 終端的文本編輯器中,較著名的有:Nano、Vim、Emacs。其它文本編輯器還有 Gedit、Sublime,Atom 等。
1、Nano
1.1、基礎命令
-
nano:打開 nano 編輯器。 -
nano [文件]:打開文件,文件不存在則創建。 -
常用參數
nano -m [文件]:激活鼠標。nano -i [文件]:激活自動縮進。nano -A [文件]:激活智能 Home 鍵,根據行首處有無縮進來跳轉。nano -miA [文件]:三者組合。
1.2、快捷操作
-
EXC X:顯示\隱藏幫助文檔。 -
Ctrl G:幫助文檔。 -
Ctrl X:退出。 -
Ctrl O:保存。 -
Ctrl J:對其當前段落。 -
Ctrl R:讀取文件。 -
Ctrl W:查找。 -
Ctrl Y:上一頁。 -
Ctrl V:下一頁。 -
Ctrl K:剪切當前行。 -
Ctrl U:粘貼 。 -
Ctrl C:光標位置。 -
Ctrl T:拼寫檢查。 -
Ctrl \:替換。
1.3、配置文件
Linux 中的配置文件大多以點開頭,以 ”rc“ 結尾。許多程序啟動時,都需要“rc”(run command)后綴的初始文件或配置文件。
Nano 有一個.nanorc配置文件,用於設置 Nano 的一些選項,每個用戶都可以在自己家目錄/home/用戶名/創建 .nanorc 配置文件。
如果家目錄沒有.nanorc,則 nano 會使用全局的配置文件。
- 個人 Nano 配置,
cd /home/用戶名,nano .nanorc
# 激活鼠標
set mouse
# 激活自動縮進
set autoindent
# 激活智能Home鍵
set smarthome
- 全局 Nano 配置,
sudo nano /etc/nanorc,該配置文件中有 Nano 的所有配置,只需將 set 配置語句前 # 號去掉,即可激活對應配置。
2、Vim
Vi iMproved,Vi 文本編輯器的進階版。
2.1、四大模式
- 交互模式:Interactive Mode, Vim 默認模式,執行剪切、粘貼、撤銷等操作。
- 插入模式:Insert Mode,按
i、a、o (I、A、O)鍵進入,執行輸入文本操作。 - 命令模式:Command Mode,也稱為底行命令模式,執行保存、退出、配置等操作。
- 可視模式:Visual Mode,高亮選取文本后的交互模式。
2.2、基礎命令
-
vim:打開 Vim 編輯器。 -
vim [文件]:打開文件,文件不存在則創建。 -
交互模式
ESC:進入交互模式。h | ↑:向左移動一個字符。j | ↓:向下移動一個字符。k | ←:向上移動一個字符。l | →:向右移動一個字符。0 (零):光標移至當前行行首。$ | End:光標移至當前行行尾。w:一個單詞一個單詞的移動。
-
插入模式(先按 Esc 鍵進入交互模式)
i:在光標前插入。I:在光標當前行首插入。a:在光標后插入。A:在光標當前行尾插入。o:在光標下插入一行。O:在光標上插入一行。s:刪除光標所在字符並在光標前插入。S:刪除光標所在行並插入。
-
命令模式(先按 Esc 鍵進入交互模式)
::進入命令模式。:w [文件名]:保存。:wq | :x [文件名]:保存並退出。:q:退出。:q!:不保存退出。- 選項參數
:set nu:顯示行號。:set nonu:隱藏行號。
-
可視模式(先按 Esc 鍵進入交互模式)
v:字符可視模式。V:行可視模式。Ctrl v:塊可視模式。- 以上相當於批量選中字符,配合刪除復制修改等操作。
u:選中字符轉小寫。U:選中字符轉大寫。
2.3、標准操作
在交互模式下操作。
-
刪除
x:刪除光標處字符。數字x:刪除從光標處字符開始,往后N個數字的字符。dd:刪除光標所在行 (剪切)。數字dd:刪除從光標所在行,往后N行字符。dw:光標移至單詞首字母刪除單詞,若光標在單詞中間則刪除光標處及后面所有字符。數字dw:刪除從光標處單詞開始,往后N個數字的單詞。d0:刪除從光標處到行首的所有字符。d$:刪除從光標處到行末的所有字符。
-
復制
yy:復制光標所在行。yw:復制一個單詞。y0:復制從光標所在處到行首的所有字符。y$:復制從光標所在處到行末的所有字符。
-
粘貼
p:粘貼到光標后面。數字p:粘貼數字次。
-
替換
r新字符:替換光標處字符。R:替換模式,替換光標處開始任意個字符,ESC 鍵退出替換模式。
-
撤銷
u:撤銷。數字u:撤銷數字次。Ctrl r:取消撤銷、返回。
-
跳轉
數字G | 數字gg:跳轉指定行。gg:跳轉首行。G:跳轉底行。
2.4、高級操作
在交互模式下操作。
-
查找
/:從當前光標處開始,向文件尾搜索;輸入查找的字符串,回車,光標跳至匹配處;n 下一個匹配,N 上一個匹配。?:從當前光標處開始,向文件頭搜索;其它與 / 一樣。
-
替換
:s/舊字符串/新字符串:替換光標所在行第一個匹配的字符串。:s/舊字符串/新字符串/g:替換光標所在行所有匹配的字符串。:#,# s/舊字符串/新字符串/g:替換第#行至第#行所有匹配的字符串。:%s/舊字符串/新字符串/g:替換所有匹配的字符串。
-
合並
:r 文件名:光標處插入一個文件的內容。
-
分屏
:sp [文件]:橫向分屏。:vsp [文件]:垂直分屏。Ctrl w w:切換分屏,同一行默認從上往下,從左往右。Ctrl w 方向鍵:按指定方向切換分屏。Ctrl w +:擴大當前分屏。Ctrl w =:均勻分配所有分屏比例。Ctrl r:調換分屏位置。Ctrl R:反向調換分屏位置。Ctrl w q|c:關閉當前分屏。:quit | :close:關閉當前分屏。Ctrl w o:保留當前分屏,關閉其它分屏。:only:保留當前分屏,關閉其它分屏。
-
其它
:!命令:運行 Vim 外部命令 (終端命令),按回車或輸入命令來繼續。
2.5、配置文件
-
配置方式
- 激活或不激活選項參數,文檔:http://vimdoc.sourceforge.net/htmldoc
- 安裝插件,官網:https://www.vim.org/scripts/index.php
-
短暫配置
打開 Vim 后,在命令模式下激活選項參數,這些激活都是一次性的,再次打開 Vim 就沒有了。
:set 選項名:激活配置:set 選項名=數值:激活配置:set no選項名:取消配置
-
永久配置
修改了配置文件后,須保存並退出文件,再重新運行 Vim,使用最新配置。
- 全局 Vim 配置,
/etc/vimrc - 個人 Vim配置,
cp /etc/vimrc ~/.vimrc
可能有的選項參數已經存在也已經被激活,前面沒有 " (雙引號)。
可能有的選項參數已經存在但沒有被激活,前面有 " (雙引號)。
可能有的選項參數還沒存在,添加即可。 - 全局 Vim 配置,
-
常用選項
syntax on:(默認) 語法高亮,根據不同的文件類型。set number:顯示行號。set showcmd:顯示當前命令。set ignorecase:查找時忽略大小寫。set mouse=a:激活鼠標,用鼠標選擇一段文本則激活可視模式。
vim /home/.vimrcif v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over everything in insert mode "set ai " always set autoindenting on " than 50 lines of registers set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time "自定義配置================================ " = set number "顯示行號 = set showcmd "顯示當前命令 = set ignorecase "查找時忽略大小寫 = set mouse=a "激活鼠標 = " = "========================================== " Only do this part when compiled with support for autocommands if has("autocmd") augroup redhat autocmd! " In text files, always limit the width of text to 78 characters " autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif " don't write swapfile on most commonly used directories for NFS mounts or USB sticks " start with spec file template autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec augroup END endif if has("cscope") && filereadable("/usr/bin/cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add $PWD/cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb endif " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif filetype plugin on if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm set t_Sf=^[[3%dm endif " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0"
