-rw-r--r--. 1 root root 1982 8月 2 2017 /etc/virc vi 配置文件 -rw-r--r--. 1 root root 1982 8月 2 2017 /etc/vimrc vim 全局配置文件 -rw-r--r--. 1 root root 1982 8月 2 2017 ~/.vimrc vim 用戶配置文件,默認沒有,須要手工創建 source ~/.vimrc 讓配置文件當即生效,source 可用(.)代替,如 . /etc/vimrc :q! 放棄修改,所用用戶可用 :wq! 當沒有寫入權限時強制寫入,只有 root 可用。 :wq 保存退出 ZZ 保存退出
a 在光標所在字符後插入 A 插入光標所在行行尾 i 在光標所在字符前插入 I 插入光標所在行行首 o 在光標下插入新行 O 在光標上插入新行
H 向左 gg 移動到文件頭 L 向右 G 移動到文件尾 J 向下 ^ 移到行首 K 向上 $ 移到行尾
x 刪除單個字符 nx 刪除 n 個字符 dw 刪除光標後一個字符串 dd 刪除單行 D 光標後刪除到行尾 ndd 刪除單行 :m,nd 從 m 行刪除到 n 行 dG 從光標所在行刪除到文件尾 C 當前位置刪除到行尾,且打開編輯模式 dw 當前位置刪除一個字符串
yy 複製 nyy 複製 n 行 p 粘貼到光標下一行 P 粘貼到光標上一行 u 撤銷 ctrl+r 反撤銷 r 替換當前光標位置字符 R 從光標位置開始替換,ESC 鍵結束 / 查找,n 下一個,N 上一個, :noh 取消查找後的高亮 :r! 命令 把命令結果寫在光標所在行 :r /etc/passwd 把/etc/passwd 文件內容載入到當前編輯的文件中
:1,10s/old/new/g 把 1 到 10 行的 old 替換爲 new :%s/old/new/g 把全文的 old 替換爲 new(%表明全文) :1,10s/^/#/g 在 1 到 10 行的行首加入#
1) 顯示行號 :set nu :set nonu 2) 顏色開關 :syntax off :syntax on 3) 快捷鍵 :map ^P I#<ESC> 當按下 ctrl+p,在行首加入「#」 「^P」須要 ctrl+V+P 輸入 :map ^B ^x 當按下 ctrl+b,刪除行首的一個字母,用於刪除註釋 4) 替換 :ab 原字符 目標字符 :ab abc ABC1234@qq.com
能夠選擇須要的功能添加至 ~/.vimrc 打開註釋使之生效。java
" 讓 vim 關閉全部擴展的功能,儘可能模擬 vi 的行爲。 set nocompatible " 突出顯示當前行,即橫線 set cursorline " 隱藏工具欄 set guioptions-=T " 隱藏菜單欄 set guioptions-=m " 設置在狀態行顯示的信息 set foldcolumn=0 " 語法高亮 set syntax=on " 去掉輸入錯誤的提示聲音 set noeb " Tab鍵的寬度 set tabstop=4 " 統一縮進爲4 set softtabstop=4 " 歷史記錄數 set history=1000 " 禁止生成臨時文件 set nobackup " 禁止生成臨時文件 set noswapfile " 搜索忽略大小寫 set ignorecase " 搜索逐字符高亮 set hlsearch " 輸入搜索內容時就顯示搜索結果 set incsearch " 高亮顯示匹配的括號 set showmatch " 匹配括號高亮的時間(單位是十分之一秒) set matchtime=1 " 光標移動到buffer的頂部和底部時保持3行距離 set scrolloff=3 "新建.c,.h,.sh,.java文件,自動插入文件頭 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" func SetTitle() if &filetype == 'sh' call setline(1, "#!/bin/bash") call append(line("."), "# File Name: ".expand("%")) call append(line(".")+1, "# Intro: *****") call append(line(".")+2, "# mail: *****@163.com") call append(line(".")+3, "# Created Time: ".strftime("%c")) call append(line(".")+4, "#-------------------------------") call append(line(".")+5, "") else call setline(1, "/*************************************************************************") call append(line("."), " > File Name: ".expand("%")) call append(line(".")+1, " > Intro: *****") call append(line(".")+2, " > Mail: *****@163.com") call append(line(".")+3, " > Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "") endif if &filetype == 'cpp' call append(line(".")+6, "#include<iostream>") call append(line(".")+7, "using namespace std;") call append(line(".")+8, "") endif if &filetype == 'c' call append(line(".")+6, "#include<stdio.h>") call append(line(".")+7, "") endif endfunc " 新建文件後,自動定位到文件末尾 autocmd BufNewFile * normal G