1. vim安裝
在線安裝(建議)
sudo apt-get install vim (ubuntu)
yum install vim (redHat/Fedora/CentOS)
2. vim使用
2.1 vim的工作模式:命令模式、編輯模式、末行模式
就是直接在vim + 文件名,進行編輯
常用命令
含義 | 命令 |
---|---|
添加批量註釋 | 1. 首先把光標定位到要註釋的最前面 2.ctrl+v進入視圖模式,向下或者向上移動光標,移動到註釋的最後一行 3.然後按大寫的i(shift+i),插入註釋符,註釋符比如 # 等等 4.最後按 esc ,這樣就選中的全部註釋了 |
去掉批量註釋 | 1. ctrl+v進入視圖模式,選中要取消註釋的區域 2. 然後按d,就會刪除選中的註釋符號 |
剪切文本 | 1. ctrl+v進入視圖模式,選中要剪切的文本 2. 點擊 y 進行復制 3. 點擊 p 進行剪切 4. 點擊 p 進行復制 剪切當前行光標所在的位置到行尾:d$ 剪切當前行光標所在的位置到行首:d^ 剪切三行:3dd,就是從當前行 + 下兩行被剪切 剪切1-10到20行(括號裏面的):(:1,10 m 20) |
刪除 | 1. 刪除一行 : dd 2.刪除以當前行開始的n行 : ndd 3. 刪除以當前字符開始的一個字符 : dw 4. 刪除以當前字符開始的n個字符 : ndw 5. 刪除以當前字符開始的一行字符 : d$ , D 6. 刪除到下一句的開始 : d) 7. 刪除到下一段的開始 : d} 8. 刪除兩行 : d + 回車 |
複製 | 將第9行至15行的數據,複製到16行 1. (:9,15 copy 16 或者 :9,15 co 16) 2.ctrl+v進入視圖模式,選中複製的文本,點擊y,將光標選擇要粘貼的地方,esc退出可視模式,點擊p進行復制 |
換行 | 點擊 o 就可以換行(不過是編輯模式,注意一下) |
撤回操作 | 點擊 u 就可以撤銷到上一次的輸入(這個只能在一般模式下使用) |
在每行前面加入行號 | :set su |
取消行號 | :set nonu |
開啓鼠標控制 | :set mouse=a |
設置搜索高亮 | :set hls |
設置字體 | :set guifont=monaco\10 |
標記當前所在行 | :set sursorline |
在命令模式下退出並保存 | :wq |
文件未作修改退出 | :q |
強制退出,不保存 | :q! |
光標跳到指定行行首 | :行號 |
光標移動到最後一行 | G |
光標移動到首行 | gg |
字符的替換 | 1. :%s/源字符/替換字符(將每行出現的第一個源字符替換爲目標字符) 2. :%s/源字符/替換後的字符/g(將全文源字符替換爲目標字符)3. : 8,10s/源字符/替換後字符/g(替換第八行到第十行的字符) |
2. 2 永久設置一些行號啥的,可以對/etc/vimrc進行編輯添加(vim /etc/vimrc),成爲永久,不用每次進入終端進行設置(建議:用啥添加啥,都添加進去也沒問題)
"打開語法高亮
syntax on
"使用配色方案
colorscheme desert
"打開文件類型檢測功能
filetype on
"不同文件類型採用不同縮進
filetype indent on
"允許使用插件
filetype plugin on
filetype plugin indent on
"關閉vi模式
set nocp
"與windows共享剪貼板
set clipboard+=unnamed
"取消VI兼容,VI鍵盤模式不易用
set nocompatible
"顯示行號, 或set number
set nu
"歷史命令保存行數
set history=100
"當文件被外部改變時自動讀取
set autoread
"取消自動備份及產生swp文件
set nobackup
set nowb
set noswapfile
"允許使用鼠標點擊定位
set mouse=a
"允許區域選擇
set selection=exclusive
set selectmode=mouse,key
"高亮光標所在行
set cursorline
"取消光標閃爍
set novisualbell
"總是顯示狀態行
set laststatus=2
"狀態欄顯示當前執行的命令
set showcmd
"標尺功能,顯示當前光標所在行列號
set ruler
"設置命令行高度爲3
set cmdheight=3
"粘貼時保持格式
set paste
"高亮顯示匹配的括號
set showmatch
"在搜索的時候忽略大小寫
set ignorecase
"高亮被搜索的句子
set hlsearch
"在搜索時,輸入的詞句的逐字符高亮(類似firefox的搜索)
set incsearch
"繼承前一行的縮進方式,特別適用於多行註釋
set autoindent
"爲C程序提供自動縮進
set smartindent
"使用C樣式的縮進
set cindent
"製表符爲4
set tabstop=4
"統一縮進爲4
set softtabstop=4
set shiftwidth=4
"允許使用退格鍵,或set backspace=2
set backspace=eol,start,indent
set whichwrap+=<,>,h,l
"取消換行
set nowrap
"啓動的時候不顯示那個援助索馬里兒童的提示
set shortmess=atI
"在被分割的窗口間顯示空白,便於閱讀
set fillchars=vert:\ ,stl:\ ,stlnc:\
"光標移動到buffer的頂部和底部時保持3行距離, 或set so=3
set scrolloff=3
"設定默認解碼
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
"設定字體
set guifont=Courier_New:h11:cANSI
set guifontwide=新宋體:h11:cGB2312
"設定編碼
set enc=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"自動補全
filetype plugin indent on
set completeopt=longest,menu
"自動補全命令時候使用菜單式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet