VI設置及用法

VI設置

經過/etc/vim/vimrc設置vi的基本操做格式。 全局屬性
經過末行模式輸入可臨時設置。
syntax on ;高亮顯示
set tabstop=4
setsofttabstop=4 ;設置(軟)製表符寬度爲4
set shiftwidth=4 ;設置縮進的空格數爲4
set autoindent ;設置自動縮進
set nu ;左行顯示文本行號
set nonu        ;去除行號linux

set ic ;忽略大小寫 ignore case
set cursorline ;show line
--------------------------------------------------------------------------------------
let &termencoding=&encoding
set fileencodings=utf-8,gbk ;中文亂碼問題

自定義快捷鍵
:map <F10> <Esc>:tabnew<CR>
其中:<Esc>表明Escape鍵;<CR>表明Enter鍵;而功能鍵則用<F10>表示。首先進入命令行模式,而後執行新建標籤頁的:tabnew命令,最後返回常規模式。
同理:對於組合鍵,能夠用<C-Esc>表明Ctrl-Esc;使用<S-F1>表示Shift-F1。對於Mac用戶,可使用<D>表明Command鍵。
注意:Alt鍵可使用<M-key>或<A-key>來表示。
關於鍵盤符號的詳細說明,請使用:h key-notation命令查看幫助信息
map <F5> <ESC>:tp<CR> //tags 查找同一標籤的上一處
map <F6> <ESC>:tn<CR>      //tags 查找同一標籤的下一處vim

自定義狀態欄:
set laststatus=2
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
-----------------------------------------------------------------------------------------------------
:ab hw hello world 用一個縮寫字符串代替一個長的字符串,此處用 hw 代替 hello world
-----------------------------------------------------------------------------------------------------函數

vi用法

1.移動光標
h 左移 l 右移 j 上移 k 下移動
0 光標移動到該行開頭
$ 光標移動到該行末尾
G 光標移動到最後一行的開頭
ctrl + b 向前卷一頁
ctrl + f 向後卷一頁spa

n+ 光標上移n行,
n- 光標下移n行.net

$:移動到行尾 3$:移動到3行後的行尾
^:移動到行首,0也是
+:移到下一行的行首
-: 移到上一行的行首
2.複製文本
yy 將光標 整行復制
yw 複製光標所處的整個單詞
nyw 複製光標所處及後面n個單詞
nyy 複製光標所處行及後面n行
p 粘帖
3. 刪除文本
dd 連按兩次d,可將光標所在的行刪除。若要連續刪除,能夠按住d不放。
ndd 連續刪除n行
D 將光標所在行後全部的單詞刪除
4.撤銷操做
u撤銷上一步操做
ctrl+r 恢復上次撤銷的動做。
5.找出行數及其餘按鍵
ctrl+g 在最後一行顯示光標所在位置的行數及文章的總行數
nGG 將光標移動至n行首
ZZ 連續兩次輸入Z ,表示保存文件並退出vim。
6.最後行操做模式的主要命令
e 在vim編輯中,可以使用e建立新文件
w! 若是要寫只讀文件,可使用W!強制寫入文件。
q! 強制退出
set nu set能夠設置vim的某些特性,這裏是設置每行的開頭提示行數,要取消設置set none
7.搜索
/string 向後搜索字符串
?string 向前搜索字符串 n向後 N向前
# 到與當前單詞相同的上一個單詞上, * 到與當前單詞相同的下一個單詞上
8. gg到文件開頭,G到文件結尾行插件

9. manpage命令行

shift+k顯示光標所在函數的manpage。unix

10. vim 中可用 :s 命令來替換字符串,具體以下:code

[range]s/from/to/[flags]blog

1)[range]
:s/str1/str2/ 替換當前行第一個 str1 爲 str2
:s/str1/str2/g 替換當前行中全部 str1 爲 str2
:%s/str1/str2/g 替換全部行中的str1 爲 str2
:ms/str1/str2/ 替換第m行的第一個 str1 爲 str2
:m,ns/str1/str2/g 替換第 m 行開始到第 n 行中全部的 str1 爲 str2
(注:m和n 爲數字,若m爲 .,表示爲當前行開始;若n爲$,則表示到最後一行結束)

2)[flags]
無 : 只對指定範圍內的第一個匹配項進行替換。
g : 對指定範圍內的全部匹配項進行替換。
c : 在替換前請求用戶確認。
e : 忽略執行過程當中的錯誤。
注意:上面的全部flags均可以組合起來使用,好比 gc 表示對指定範圍內的全部匹配項進行替換,而且在每一次替換以前都會請用戶確認。

3) 分隔符
若是使用 # 做爲分隔符,則中間出現的 / 不會做爲分隔符,好比:
:s#str1/#str2/# 替換當前行第一個 str1/ 爲 str2/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/

-----------------------------------------------------------------------------------------------------------------------------------

vim插件

1. man.vim

在瀏覽代碼中,碰到系統函數調用,可能對於它們的參數類型、參數個數、返回值不肯定,這時man.vim就被派上用場了。

vi ~/.vimrc
:source $VIMRUNTIME/ftplugin/man.vim

man.vim插件自vim包自帶的,存放在/usr/share/vim/vim72/syntax/man.vim和/usr/share/vim/vim72/ftplugin/man.vim,固然你也能夠將其拷貝到~/.vim/ftplugin下統一管理,source的時候更改相應的路徑便可。

在vim命令模式下:Man 系統調用(如:Man strcpy)

 

vim去除^M

linux下 ^M的輸入方法是ctrl+v而後再ctrl+m

1. vim下顯示^M

:e ++ff=unix %

2. vim下刪除^M

:%s/^M$//g

3. 在linux查找^M

find ./ | xargs grep '^M' -l -s

4.在linux下刪除^M

find ./ | xargs grep '^M' -l -s | xargs dos2unix

 

參考:

1. vim操做彙總

相關文章
相關標籤/搜索