Ubuntu下VIM使用指南
基本命令:
Esc:VIM中的萬能功能鍵之一,基本上任何時候按這個鍵,都可以返回VIM的普通狀態。
i:在普通狀態下按i可以進入“插入”編輯狀態,這個時候按方向鍵移動光標,在想要輸入的地方輸入字符,用Del鍵刪除字符,最后用Esc退出到普通狀態。
yy(yny):在普通狀態下,把光標用方向鍵移動到想要復制的某行文字上,按兩下y,就是復制這一行。如果是想復制這行一下n行,就用yny方式。如復制5行,就是y5y。
p:復制后,移動光標到要粘貼的地方,按p既可。
d:和上面相對,按d就是刪除當前行。
x:在普通模式下,按x就是刪除光標當前位置的字符,漢字就是整個漢字。
:wq!:在普通模式下輸入“:”就進入命令狀態,在這個狀態下,q代表退出,w代表保存,!代表強制。比如放棄修改,就是:q!,強制保存退出就是:wq!。
?
進入vi?的命令
vi filename :打開或新建文件,并將光標置于第一行首
vi +n filename?:打開文件,并將光標置于第n行首
vi + filename?:打開文件,并將光標置于最后一行首
vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處
vi -r filename?:在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename?:打開多個文件,依次進行編輯
移動光標類命令
h?:光標左移一個字符
l?:光標右移一個字符
space:光標右移一個字符
Backspace:光標左移一個字符
k或Ctrl+p:光標上移一行
j或Ctrl+n?:光標下移一行
Enter?:光標下移一行
w或W?:光標右移一個字至字首
b或B?:光標左移一個字至字首
e或E?:光標右移一個字至字尾
)?:光標移至句尾
(?:光標移至句首
}:光標移至段落開頭
{:光標移至段落結尾
nG:光標移至第n行首
n+:光標下移n行
n-:光標上移n行
n$:光標移至第n行尾
H?:光標移至屏幕頂行
M?:光標移至屏幕中間行
L?:光標移至屏幕最后行
0:(注意是數字零)光標移至當前行首
$:光標移至當前行尾
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令
i?:在光標前
I?:在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數目的字符
S:刪除指定數目的行,并以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
ndw或ndW:刪除光標處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
最后行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d?:將n1行到n2行之間的內容刪除
:w?:保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中。
?
在vi編輯器里面命令模式選項
:set all?查看所有set選項
:set?顯示當前set設置
:filetype on?通過$VIMRUNTIME/filetype.vim.打開文件類型檢測
?
*******************************************華麗的分割線****************************************************
VIM的安裝:
sudo apt-get install vim
文件位置:
/etc/vim/vimrc
VIM配置:
"-----------------------
"基本設置
"-----------------------
"不使用與vi兼容的鍵盤模式
set nocompatible
"檢測文件的類型
filetype on
"記錄歷史的行數
set history=1000
"修改一個文件后,自動進行備份,備份的文件名為原文件名加“~“后綴
"if has("vms")
"set nobackup
"else
"set backup
"endif
"?可以在buffer的任何地方使用鼠標
set mouse=a
set selection=exclusive
set selectmode=mouse,key
"-----------------------
"界面設置
"----------------------
"顯示行號
set nu!
"高亮顯示當前行
set cursorline
"背景使用黑色
set background=dark
"去除vim的GUI版本中的toolbar
set guioptions-=T
"在編輯過程中,在右下角顯示光標位置
set ruler
"always show the status line
set laststatus=2
"---------------------
"格式設置
"---------------------
"自動換行
set wrap
"整詞換行
set linebreak
"自動對齊
set autoindent
"智能對齊
set smartindent
"設置自動縮進
set ai!
"設置tab鍵為4個空格
set tabstop=4
"不要用空格代替制表符
set noexpandtab
"設置行間交錯為4個空格
set shiftwidth=4
"使退格鍵可用
set backspace=2
"允許backspace和光標鍵跨越行邊界
set whichwrap+=<,>,h,l
"---------------------
"編程設置
"---------------------
"語法高亮度顯示
syntax on
"設置匹配模式,類似當輸入一個左括號時會匹配相應的那個右括號
set showmatch
?
"--------------------
"搜索相關設置
"-------------------
"默認情況下,搜索結果是高亮度顯示的,該設置關閉高亮顯示
"set nohlsearch
"隨輸入增量搜索
set incsearch
一般設置如下:
" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
" you can find below. If you wish to change any of those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed. It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.
" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
"syntax on
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
" au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
" \| exe "normal g'\"" | endif
"endif
" Uncomment the following to have Vim load indentation rules according to the
" detected filetype. Per default Debian Vim only load filetype specific
" plugins.
"if has("autocmd")
" filetype indent on
"endif
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd " Show (partial) command in status line.
"set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
"set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden " Hide buffers when they are abandoned
"set mouse=a " Enable mouse usage (all modes) in terminals
" Source a global configuration file if available
" XXX Deprecated, please move your changes here in /etc/vim/vimrc
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
個人添加的配置:
"有兩個的只能取其一
set ai/noai "?自動縮進,新行與前面的行保持—致的自動空格/不自動空格(缺省)
set aw/noaw "?自動寫,轉入shell或使用:n編輯其他文件時,當前的緩沖區被寫入/不寫
set flash/noflash "?在出錯處閃爍但不嗚叫(缺省)/使用嗚叫而不閃爍
set ic/noic "?在查詢及模式匹配時忽賂大小寫/不忽略大小寫(缺省)
set nu/nonu
set number/nonumber "?屏幕左邊顯示行號/不顯示行號(缺省)
set showmatch "?顯示括號配對,當鍵入“]”“)”時,高亮度顯示匹配的括號/缺省不高亮
set showmode "?處于文本輸入方式時加亮按鈕條中的模式指示器/缺省不指示當前模式
set showcmd "?在狀態欄顯示目前所執行的指令,未完成的指令片段亦會顯示出來
set warn/nowarn "?對文本進行了新的修改后,離開shell時系統給出顯示(缺省)
set ws/nows "?在搜索時如到達文件尾則繞回文件頭繼續搜索
set wrap/nowrap "?長行顯示自動折行
colorscheme evening "?設定背景為夜間模式
filetype plugin on "?自動識別文件類型,自動匹配對應的, “文件類型Plugin.vim”文件,使用縮進定義文件
set autoindent "?設置自動縮進:即每行的縮進值與上一行相等;使用noautoindent?取消設置
set cindent "?以C/C++的模式縮進
set noignorecase "?默認區分大小寫
set ruler "?打開狀態欄標尺
set scrolloff=5 "?設定光標離窗口上下邊界5?行時窗口自動滾動
set shiftwidth=4 "?設定<<?和>>?命令移動時的寬度為4
set softtabstop=4 "?使得按退格鍵時可以一次刪掉4?個空格,不足4?個時刪掉所有剩下的空格)
set tabstop=4 "?設定tab?長度為4
set wrap "?自動換行顯示
syntax enable
syntax on "?自動語法高亮
轉載于:https://www.cnblogs.com/lukcyjane/p/3856210.html
總結
以上是生活随笔為你收集整理的Ubuntu下VIM使用指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再谈迭代器,生成器,yield,及和类的
- 下一篇: ImageView和onTouchLis