vim编辑器的使用--转自MJ学长
一、引言
1. vim是一款功能強(qiáng)大的文本編輯器,如果使用熟練,將會(huì)有效幫助我們提高編輯文本、程序的效率。vim編輯器的上手使用門檻比較高,很多人怯于要記很多命令,往往在學(xué)習(xí)的初期階段就望而卻步。
2. vim的學(xué)習(xí)需要不斷的練習(xí)、使用,只有強(qiáng)迫自己不斷的使用,才能在使用的過程中記住那些看似復(fù)雜的命令,但是如果一旦習(xí)慣了vim的編輯模式,就會(huì)覺得vim真的會(huì)幫助我們提高文本編輯效率。
3. 關(guān)于vim學(xué)習(xí)資料,其本自帶的vim幫助文檔,就足夠豐富,可以在學(xué)習(xí)的過程不斷查閱。另外,也有一個(gè)簡化的入手文檔即vimtutor,在命令行輸入vimtutor,便可以開始學(xué)習(xí),大概不到一個(gè)小時(shí)就可以學(xué)習(xí)并練習(xí)完。
二、配置
?1. vim的配置文件有全局配置(一般在目錄/etc/vim/vimrc)和個(gè)人配置(/home/username/.vimrc)下,全局配置文件對(duì)系統(tǒng)所有的用戶都生效,個(gè)人配置文件只對(duì)用戶自的使用環(huán)境生效
2. vim的配置文件一般網(wǎng)上都會(huì)有別人已經(jīng)設(shè)置好的配置,可以復(fù)制到自己的個(gè)人配置文件里直接使用,也可以根據(jù)需要自己定制自己的使用環(huán)境
三、配置腳本
1.在之前的使用過程中,本人參考資料根據(jù)個(gè)人需要配置了一份自己的配置腳本,其中大部分都有注釋說明,可以根據(jù)需要自己配置。注:"開始的在vimrc中表示注釋
? ? ?set termencoding=utf8
set hlsearch
"行號(hào)
set nu
"語法高亮
syntax on
"啟用鼠標(biāo)
set mouse=v
"自動(dòng)縮進(jìn)
"突出顯示列
"set cursorcolumn
"突出顯示當(dāng)前行
set cursorline
"高亮顯示當(dāng)前行
"hi CursorLine cterm=NONE ctermbg=magenta ctermfg=white guibg=darked guifg=white
set autoindent
"set guifont=Monaco:h80 " 字體 && 字號(hào)
"去掉討厭的有關(guān)vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
"依據(jù)上面的對(duì)齊格式,智能的選擇對(duì)起方式,對(duì)于類似C語言編寫上很有用
set smartindent
"設(shè)置縮進(jìn)
set tabstop=4
set softtabstop=4
set shiftwidth=4
"在狀態(tài)欄顯示正在輸入的命令
set showcmd
"左下角顯示當(dāng)前vim模式
set showmode
" 代碼折疊
set foldenable
set foldmethod=indent
set foldlevel=99
"顯示標(biāo)尺
set ruler
"打開文件類型自動(dòng)檢測(cè)功能
filetype on
set completeopt=longest,menu
"啟動(dòng)自動(dòng)補(bǔ)全
"filetype plugin indent on
"在分割的窗口間移動(dòng)
:nnoremap <C-h> <C-w>h
:nnoremap <C-j> <C-w>j
:nnoremap <C-k> <C-w>k
:nnoremap <C-l> <C-w>l
"當(dāng)新建 .h .c .hpp .cpp 等文件時(shí)自動(dòng)調(diào)用SetTitle 函數(shù)
autocmd BufNewFile *.[ch],*.php,*.cpp exec "call SetTitle()"
function SetComment()
call setline(1,"/*========================================================")
call append(line("."), "* Copyright (C) ".strftime("%Y")." All rights reserved.")
call append(line(".")+1, "* ")
call append(line(".")+2, "* 文件名稱:".expand("%:t"))
call append(line(".")+3, "* 創(chuàng) 建 者:mj")
call append(line(".")+4, "* 創(chuàng)建日期:".strftime("%Y年%m月%d日"))
call append(line(".")+5, "* 描 述:")
call append(line(".")+6, "*")
call append(line(".")+7, "================================================================*/")
endfunction
"定義函數(shù)SetTitle,自動(dòng)插入文件頭
function SetTitle()
call SetComment()
if expand("%:e") == 'php'
call append(line(".")+8, "#ifndef _".toupper(expand("%:t:r"))."_H")
call append(line(".")+9, "#define _".toupper(expand("%:t:r"))."_H")
call append(line(".")+10, "#ifdef __cplusplus")
call append(line(".")+11, "extern \"C\"")
call append(line(".")+12, "{")
call append(line(".")+13, "#endif")
call append(line(".")+14, "")
call append(line(".")+15, "#ifdef __cplusplus")
call append(line(".")+16, "}")
call append(line(".")+17, "#endif")
call append(line(".")+18, "#endif //".toupper(expand("%:t:r"))."_H")
elseif expand("%:e") == 'h'
"call append(line(".")+8, "#pragma once")
elseif &filetype == 'c'
call append(line(".")+8,"#include <stdio.h>")
call append(line(".")+9,"#include <stdlib.h>")
call append(line(".")+10," ")
call append(line(".")+11," ")
call append(line(".")+12,"int main() ")
call append(line(".")+13,"{")
call append(line(".")+14," return EXIT_SUCCESS;")
call append(line(".")+15,"}")
elseif &filetype == 'cpp'
"call append(line(".")+8, "#include \"".expand("%:t:r").".h\"")
call append(line(".")+8, "#include <iostream>")
call append(line(".")+9, "#include <string>")
call append(line(".")+10,"#include <cstdlib>")
call append(line(".")+11," ")
call append(line(".")+12,"using namespace std;")
call append(line(".")+13," ")
call append(line(".")+13," ")
call append(line(".")+14,"int main() ")
call append(line(".")+15,"{")
call append(line(".")+16," return EXIT_SUCCESS;")
call append(line(".")+17,"}")
endif
endfunction
autocmd BufNewFile *.sh exec "call SetBashTitle()"
function SetBashTitle()
call setline(1,"#!/bin/bash")
endfunction
"自動(dòng)補(bǔ)全
":inoremap ( ()<ESC>i
":inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { { }<ESC>
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction
"設(shè)置退格鍵
set backspace=indent,eol,start
2. vim主題配置
vim自帶了很多主題設(shè)置,一般可以在/usr/share/vim/vim72/colors目錄中查看當(dāng)前版本的vim的顏色方案,可以在.vimrc中用colorscheme ?darkblue或者其主題進(jìn)行vim的主題配置。
也可以按照腳本配置其不同或稍復(fù)雜的顏色方案,下面一段腳本就是根據(jù)每天的不同時(shí)間段配置vim的顏色方案
? ? ?"根據(jù)時(shí)間段不同,設(shè)置vim的不同配色方案
function SetTimeOfDayColors()
let currentHour = strftime("%H")
let colorScheme=""
if currentHour < 1 + 0
let colorScheme = "blue"
echo "setting colorscheme to blue"
elseif currentHour < 2 + 0
let colorScheme="darkblue"
echo "setting colorscheme to darkblue"
elseif currentHour < 3 + 0
let colorScheme="default"
echo "setting colorscheme to default"
elseif currentHour < 4 + 0
let colorScheme="delek"
echo "setting colorscheme to delek"
elseif currentHour < 5 + 0
let colorScheme="desert"
echo "setting colorscheme to desert"
elseif currentHour < 6 + 0
let colorScheme="elflord"
echo "setting colorscheme to elflord"
elseif currentHour < 7 + 0
let colorScheme="evening"
echo "setting colorscheme to evening"
elseif currentHour < 8 + 0
let colorScheme="koehler"
echo "setting colorscheme to koehler"
elseif currentHour < 9 + 0
let colorScheme="morning"
echo "setting colorscheme to morning"
elseif currentHour < 10 + 0
let colorScheme="murphy"
echo "setting colorscheme to murphy"
elseif currentHour < 11 + 0
let colorScheme="pablo"
echo "setting colorscheme to pablo"
elseif currentHour < 12 + 0
let colorScheme="peachpuff"
echo "setting colorscheme to peachpuff"
elseif currentHour < 13 + 0
let colorScheme="ron"
echo "setting colorscheme to ron"
elseif currentHour < 14 + 0
let colorScheme="shine"
echo "setting colorscheme to shine"
elseif currentHour < 15 + 0
let colorScheme="desert"
echo "setting colorscheme to desert"
elseif currentHour < 16 + 0
let colorScheme = "torte"
echo "setting colorscheme to torte"
elseif currentHour < 17 + 0
let colorScheme="zellner"
echo "setting colorscheme to zellner"
else
let colorScheme="desert"
endif
execute "colorscheme " . colorScheme
endfunction
call SetTimeOfDayColors()
轉(zhuǎn)載于:https://www.cnblogs.com/maowuyu-xb/p/9084128.html
總結(jié)
以上是生活随笔為你收集整理的vim编辑器的使用--转自MJ学长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Taro+react开发(75):tar
- 下一篇: 爬取淘宝商品评论——2020-8月