vim編輯器

vim編輯器

-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

vim自定義設置

       能夠選擇須要的功能添加至 ~/.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
相關文章
相關標籤/搜索