0.前言
您好這里是limou3434的個人博客,感興趣可以看看我的其他內(nèi)容。
本次我給您帶來的是Linux下Vim文本編輯器的使用,關(guān)于vim,您只需要知道一些常用的指令和操作即可,快速上手的秘訣是實踐,并且是多次實踐。
1.Vim的安裝和基礎(chǔ)使用
- 安裝:在centos環(huán)境下安裝vim可以使用“sudo yum install vim”,其他環(huán)境可能不太一樣。
- 編輯:“vim 文件名”創(chuàng)建文件并且點擊“i”進行編輯,若是沒有目標文件則創(chuàng)建,有則進入vim的編輯狀態(tài)。
- 退出:“esc+:+wq”這里w是保存,q是退出(加“!”是強制執(zhí)行),連用就是保存文件并且退出vim。
2.Vim的三種常見模式
Vim是多模式的文本編輯器,其中常見的三種模式是:命令模式、插入模式、底行模式。
2.1.命令模式
vim一進入就是命令模式(默認),按“i”進入插入模式,按“:”進入底行模式。
- 復(fù)制命令:輸入數(shù)字“m+yy”可以復(fù)制光標所在行后m行的文本,輸入“數(shù)字n+p”后就可以在光標所處的下一行粘貼n份的內(nèi)容,另外“vy”命令只復(fù)制一個字符。
- 剪切命令:“dd”命令可以剪切整行文本,然后使用“p”命令即可,用法類似復(fù)制命令,另外“x”命令可以剪切光標所在位置的字符。
- 撤銷命令:“u”指令是撤銷命令,“ctrl+r”是撤銷掉撤銷命令。
- 光標命令:“G”直達文本的最后一個字符,“gg”直達文本的第一個字符,“數(shù)字n+G”可以定位到第n行?!?”可以定位到文本行的末尾,“^”可以定位到文本行的開頭,“w”和“b”可以以一個單詞為單位左右移動?!癶、j、k、l”對應(yīng)方向鍵(也可以使用方向鍵,不過更推薦前者,更加原生態(tài))。
- 大小寫命令:“~”可以自動轉(zhuǎn)化大小寫。
- 替換命令:“R”命令用作替換文本,接下來輸入的內(nèi)容會把光標所在文本替換/覆蓋。(實際上這個是由“命令模式”轉(zhuǎn)化為“替換模式”),“r”命令只替換一個字符(也可以加上數(shù)字n,“n+r”再輸入單個字符可以連續(xù)替換成相同的字符)。
- 刪除字符:“D”命令和“x”命令,前者刪除行后者,刪除字符,也可以加上數(shù)字n進行批量刪除。
2.2…插入模式
進入vim的插入模式就可以編寫文本,按“esc”回到命令模式。這個插入模式對于剛?cè)腴T的人來說沒有什么特別的,就是可以通過鍵盤輸入字符的模式而已。
2.3.底行模式
使用“:”起頭輸入對于的命令,按“esc”回到命令模式。
- 保存文件:“:wq”不再進行說明。
- 打開行號:“:set nu”指令調(diào)出行號,“set nonu”取消行號。
- 分屏操作:“:vsplit 文件名”指令為多屏操作,“ctrl+ww”可以快速切換分屏,“ctrl+w+方向鍵”也可以達到切屏的效果。“:only”取消所有分屏(只保留當前窗口),“ctrl+w+c”取消單個分屏(或者使用“:close”)。另外,“:split”是水平分割屏幕,“:vsplit”是豎直分割屏幕。
- 編譯代碼:“:!gcc 文件名”可以直接在vim內(nèi)編譯代碼,然后繼續(xù)使用vim,同理可以“!./a.out”可以輸出編譯結(jié)果。其中要注意:這里的“!”命令是不退出vim并且執(zhí)行后續(xù)對應(yīng)的指令,可以用這個命令來運行命令行指令。
3.Vim的相關(guān)配置
使用vim的時候最好是配置好配置文件,而vim的配置文件一般所在地為:家目錄下的“.vimrc”文件,如果沒有可以自己創(chuàng)建。
接下來進行配置,如果之前已經(jīng)有相關(guān)配置了,可以像拷貝一份原有配置,避免配置失敗。
Vim配置選項可在Vim命令行模式下使用“:set 某配置選項”激活配置選項,也可以通過“set 某配置選項”的格式保在配置文件中被Vim加載執(zhí)行。Vim的配置文件 (例如 ~/.vimrc) 其實是多個配置選項的集合。每個Vim配置項都有對應(yīng)的關(guān)閉選項,“set no 某配置選項”即可關(guān)閉配置選項?!皊et nu”表示顯示行號,而“set nonu”則表示不顯示行號。
知道這一配置思想后,相關(guān)的配置項有很多,您可以上網(wǎng)搜一下,配置個性化的vim。下面是我的vim配置,您可以拷貝進您的.vimrc文件中:
"""""""""""""""""""""""""""""""""""
"""=>全局配置<="""
"""""""""""""""""""""""""""""""""""
"關(guān)閉vi兼容模式"
set nocompatible
"設(shè)置歷史記錄步數(shù)"
set history=1000
"開啟相關(guān)插件"
"偵測文件類型"
filetype on
"載入文件類型插件"
filetype plugin on
"為特定文件類型載入相關(guān)縮進文件"
filetype indent on
"當文件在外部被修改時,自動更新該文件"
set autoread
"激活鼠標的使用"
set mouse=a
set selection=exclusive
set selectmode=mouse,key
"保存全局變量"
set viminfo+=!
"帶有如下符號的單詞不要被換行分割"
set iskeyword+=_,$,@,%,#,-
"通過使用: commands命令,告訴我們文件的哪一行被改變過"
set report=0
"被分割的窗口間顯示空白,便于閱讀"
set fillchars=vert:\ ,stl:\ ,stlnc:\
"""""""""""""""""""""""""""""""""
"""=>字體和顏色<="""
"""""""""""""""""""""""""""""""""
"自動開啟語法高亮"
syntax enable
"設(shè)置字體"
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI
"設(shè)置顏色"
"colorscheme desert
"高亮顯示當前行"
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00
"高亮顯示普通txt文件(需要txt.vim腳本)"
au BufRead,BufNewFile * setfiletype txt
"""""""""""""""""""""""""""""""
"""=>代碼折疊功能<="""
"""""""""""""""""""""""""""""""
"激活折疊功能"
set foldenable
"set nofen(這個是關(guān)閉折疊功能)"
"設(shè)置按照語法方式折疊(可簡寫set fdm=XX)"
"有6種折疊方法:
"manual 手工定義折疊"
"indent 更多的縮進表示更高級別的折疊"
"expr 用表達式來定義折疊"
"syntax 用語法高亮來定義折疊"
"diff 對沒有更改的文本進行折疊"
"marker 對文中的標志進行折疊"
set foldmethod=manual
"set fdl=0(這個是不選用任何折疊方法)"
"設(shè)置折疊區(qū)域的寬度"
"如果不為0,則在屏幕左側(cè)顯示一個折疊標識列
"分別用“-”和“+”來表示打開和關(guān)閉的折疊
set foldcolumn=0
"設(shè)置折疊層數(shù)為3"
setlocal foldlevel=3
"設(shè)置為自動關(guān)閉折疊"
set foldclose=all
"用空格鍵來代替zo和zc快捷鍵實現(xiàn)開關(guān)折疊"
"zo O-pen a fold (打開折疊)
"zc C-lose a fold (關(guān)閉折疊)
"zf F-old creation (創(chuàng)建折疊)
"nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
"""""""""""""""""""""""""""""""""""
"""=>文字處理<="""
"""""""""""""""""""""""""""""""""""
"使用空格來替換Tab"
set expandtab
"設(shè)置所有的Tab和縮進為4個空格"
set tabstop=4
"設(shè)定<<和>>命令移動時的寬度為4"
set shiftwidth=4
"使得按退格鍵時可以一次刪除4個空格"
set softtabstop=4
set smarttab
"縮進,自動縮進(繼承前一行的縮進)"
"set autoindent 命令打開自動縮進,是下面配置的縮寫
"可使用autoindent命令的簡寫,即“:set ai”和“:set noai”
"還可以使用“:set ai sw=4”在一個命令中打開縮進并設(shè)置縮進級別
set ai
set cindent
"智能縮進"
set si
"自動換行”
set wrap
"設(shè)置軟寬度"
set sw=4
"行內(nèi)替換"
set gdefault
""""""""""""""""""""""""""""""""""
"""=>Vim 界面<="""
""""""""""""""""""""""""""""""""""
"增強模式中的命令行自動完成操作"
set wildmenu
"顯示標尺"
set ruler
"設(shè)置命令行的高度"
set cmdheight=1
"顯示行數(shù)"
set nu
"不要圖形按鈕"
set go=
"在執(zhí)行宏命令時,不進行顯示重繪;在宏命令執(zhí)行完成后,一次性重繪,以便提高性能"
set lz
"使回格鍵(backspace)正常處理indent, eol, start等"
set backspace=eol,start,indent
"允許空格鍵和光標鍵跨越行邊界"
set whichwrap+=<,>,h,l
"設(shè)置魔術(shù)"
set magic
"關(guān)閉遇到錯誤時的聲音提示"
"關(guān)閉錯誤信息響鈴"
set noerrorbells
"關(guān)閉使用可視響鈴代替呼叫"
set novisualbell
"高亮顯示匹配的括號([{和}])"
set showmatch
"匹配括號高亮的時間(單位是十分之一秒)"
set mat=2
"光標移動到buffer的頂部和底部時保持3行距離"
set scrolloff=3
"搜索逐字符高亮"
set hlsearch
set incsearch
"搜索時不區(qū)分大小寫"
"還可以使用簡寫(“:set ic”和“:set noic”)"
set ignorecase
"用淺色高亮顯示當前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
"輸入的命令顯示出來,看的清楚"
set showcmd
""""""""""""""""""""""""""""""""""""
"""=>編碼設(shè)置<="""
""""""""""""""""""""""""""""""""""""
"設(shè)置編碼"
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"設(shè)置文件編碼"
set fileencodings=utf-8
"設(shè)置終端編碼"
set termencoding=utf-8
"設(shè)置語言編碼"
set langmenu=zh_CN.UTF-8
set helplang=cn
"""""""""""""""""""""""""""""
"""=>其他設(shè)置<="""
"""""""""""""""""""""""""""""
"開啟新行時使用智能自動縮進"
set smartindent
set cin
set showmatch
"在處理未保存或只讀文件的時候,彈出確認"
set confirm
"隱藏工具欄"
set guioptions-=T
"隱藏菜單欄"
set guioptions-=m
"置空錯誤鈴聲的終端代碼"
set vb t_vb=
"顯示狀態(tài)欄(默認值為1,表示無法顯示狀態(tài)欄)"
set laststatus=2
"狀態(tài)行顯示的內(nèi)容"
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"粘貼不換行問題的解決方法"
set pastetoggle=<F9>
"設(shè)置背景顏色"
set background=dark
"文件類型自動檢測,代碼智能補全"
set completeopt=longest,preview,menu
"共享剪切板"
set clipboard+=unnamed
"從不備份"
set nobackup
set noswapfile
"自動保存"
set autowrite
"顯示中文幫助"
if version >= 603
set helplang=cn
set encoding=utf-8
endif
"設(shè)置高亮相關(guān)項"
highlight Search ctermbg=black ctermfg=white guifg=white guibg=black
""""""""""""""""""""""""""""""""
"""=>在shell腳本開頭自動增加解釋器以及作者等版權(quán)信息<="""
""""""""""""""""""""""""""""""""
"新建.py,.cc,.sh,.java文件,自動插入文件頭"
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
"定義函數(shù)SetTitle,自動插入文件頭"
func SetTitle()
if expand ("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "#Author:bert")
call setline(3, "#Blog:https://blog.51cto.com/zpf666")
call setline(4, "#Time:".strftime("%F %T"))
call setline(5, "#Name:".expand("%"))
call setline(6, "#Version:V1.0")
call setline(7, "#Description:This is a production script.")
endif
endfunc
如果需要安裝插件最好還是創(chuàng)建一個文件夾vim,在里面放置更多的配置文件(包括.vimrc),但是不太推薦使用部分比較冗余的插件。
關(guān)于vim的配置,也可以使用下面這個一鍵安裝命令(目前只適用Centos7系統(tǒng)):
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
然后輸入root密碼即可。
而卸載的命令是:文章來源:http://www.zghlxwxcb.cn/news/detail-515809.html
bash ~/.VimForCpp/uninstall.sh
另外這個配置對應(yīng)的文檔可以查看一下,您可以查看這個項目的原理來配置自己的安裝命令。文章來源地址http://www.zghlxwxcb.cn/news/detail-515809.html
到了這里,關(guān)于Linux基礎(chǔ)工具|文本編輯器Vim的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!