1. 程式人生 > >vim複製、貼上以及配置總結

vim複製、貼上以及配置總結

兩篇使用的vim複製貼上比較高階的用法

http://www.cnblogs.com/hustcat/articles/1791371.html

vim這麼久 了,始終也不知道怎麼在vim中使用系統貼上板,通常要在網上複製一段程式碼都是先gedit開啟檔案,中鍵粘貼後關閉,然後再用vim開啟編輯,真的不 爽;上次論壇上有人問到了怎麼在vim中使用系統貼上板,印象裡回覆很多,有好幾頁的回覆卻沒有解決問題,今天實在受不了了又在網上找辦法,竟意外地找到 了,貼出來分享一下。

如果只是想使用系統貼上板的話直接在輸入模式按Shift+Inset(貼上)就可以了,下面講一下vim的貼上板的基礎知識,有興趣的可以看看,應該會有所收穫的。
vim

幫助文件裡與貼上板有關的內容如下:

  1. vim有12個貼上板,分別是0、1、2、...、9、a、“、+;用:reg命令可以檢視各個貼上板裡的內容。在vim中簡單用y只是複製到“(雙引號)貼上板裡,同樣用p貼上的也是這個貼上板裡的內容;
  2. 要將vim的內容複製到某個貼上板,需要退出編輯模式,進入正常模式後,選擇要複製的內容,然後按"Ny(注意帶引號)完成複製,其中N為貼上板號(注意是按一下雙引號然後按貼上板號最後按y),例如要把內容複製到貼上板a,選中內容後按"ay就可以了,有兩點需要說明一下:
    • “號貼上板(臨時貼上板)比較特殊,直接按y就複製到這個貼上板中了,直接按p就貼上這個貼上板中的內容;
    • +號貼上板是系統貼上板,用"+y將內容複製
      到該貼上板後可以使用Ctrl+V將其貼上到其他文件(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右鍵複製的內容複製vim中,需要在正常模式下按"+p;
  3. 要將vim某個貼上板裡的內容貼上進來,需要退出編輯模式,在正常模式按"Np,其中N為貼上板號,如上所述,可以按"5p將5號貼上板裡的內容貼上進來,也可以按"+p將系統全域性貼上板裡的內容貼上進來。
注意:在我這裡,只有vim.gtk或vim.gnome才能使用系統全域性貼上板,預設的vim.basic看不到+號暫存器。安裝vim.gnome使用apt-get install vim-gnome,然後vim自動會連結到vim.gnome。

下面是vim複製貼上的基本命令:
yy複製遊標所在行整行。或大寫一個Y。
2yy或y2y複製兩行。 ㄟ ,請舉一反三好不好! :-)
y^複製至行首,或y0。不含遊標所在處字元。
y$複製至行尾。含遊標所在處字元。
yw複製一個word。
y2w複製兩個字(單詞)。
yG複製至檔尾。
y1G複製至檔首。
p小寫p代表貼至遊標後(下)。
P大寫P代表貼至遊標前(上)。

複製單個字元
首選進入正常模式(按ESC就行)
然後按v(指定貼上板為"1v 引號不能少),進入visual方式,然後就可以移動方向鍵選中文字,然後按y,就拷貝完成,
如果你要從游標處開始複製 4 個字元,可以按 4yl (複製游標後的)("14yl)("110yl 後面10個字元),4yh(複製游標前的) ,就複製了4個字元到緩衝區中了,

按下來就可以用 p (指定貼上板為"1v 引號不能少)命令隨便貼上了(1為指下貼上板名)          


gg 跳到首行
v visual模式
G 跳到末行

複製也有ggyG一說。

複製到外部程式用ggVG”+y ,或者用滑鼠.. [注意這裡vim要安裝full版本的]

配置vim
注:只對各個使用者在自己的當前目錄下的.vimrc修改的話,修改內容只對本使用者有效,要想全部有效,可以修改/etc/vim/vimrc.
1.apt-get install vim-full
2.設定/etc/vim/vimrc加上下面語句:
“語法高亮度顯示
syntax on
“去掉有關vi一致性模式,避免以前版本的一些bug和侷限
set nocompatible
“顯示行號
set number
“檢測檔案的型別
filetype on
“記錄歷史的行數
set history=1000
“背景使用黑色
set background=dark
“vim使用自動對起,也就是把當前行的對起格式應用到下一行
set autoindent
“依據上面的對起格式,智慧的選擇對起方式,對於類似C語言編
set smartindent
“設定Windows風格的C/C++自動縮排,第一行設定tab鍵為4個空格,第二行設定當行之間交錯時使用4個空格
set tabstop=4
set shiftwidth=4
“設定匹配模式,類似當輸入一個左括號時會匹配相應的那個右括號
set showmatch
“去除vim的GUI版本中的toolbar
set guioptions-=T
“在編輯過程中,在右下角顯示游標位置的狀態行
set ruler
“預設情況下,尋找匹配是高亮度顯示的,該設定關閉高亮顯示
set nohls
“使用此設定會快速找到答案,當你找要匹配的單詞時,別忘記回車
set incsearch
“如果沒有下列行,加上吧
if &term==”xterm”
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
系統的一些設定(包括終端下的顏色,ls命令,vi等)
注:只對各個使用者在自己的當前目錄下的.vimrc修改的話,修改內容只對本使用者有效,要想全部有效,可以修改/etc/bash.bashrc
使用alias命令修改之
將其中的與顏色有關的設定改為:
# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ] && [ -x /usr/bin/dircolors ]; then
eval “`dircolors -b`”
alias ls=’ls –color=auto’
alias vi=’vim’
alias ll=’ls -l –color=auto’
alias dir=’ls –color=auto –format=vertical’
alias vdir=’ls –color=auto –format=long’

alias grep=’grep –color=auto’
alias fgrep=’fgrep –color=auto’
alias egrep=’egrep –color=auto’
fi
增加命令:
# some more ls aliases
alias ll=’ls -l’
alias la=’ls -A’
alias l=’ls -CF’

vi(m)用法
vi 是 Linux/Unix 世界裡極為普遍的全螢幕文字編輯器,
幾乎可以說任何一臺 Linux/Unix 機器都會提供這個軟體。
vi 有三種狀態,即編輯方式、插入方式和命令方式。
在命令方式下,所有命令都要以:開始,所鍵入的字元系統均作命令來處理,
如:q 代表退出,:w 表示存檔。
當你進入vi 時,會首先進入命令方式(同時也是編輯方式)。
按下I就進入插入方式,使用者輸入的可視字元都新增到檔案中,顯示在螢幕上。
按下ESC就可以回到命令狀態(同時也是編輯方式)。
編輯方式和命令方式類似,都是要輸入命令,
但它的命令不要以:開始,它直接接受鍵盤輸入的單字元或組合字元命令,
例如直接按下u 就表示取消上一次對檔案的修改,相當於WINDOWS 下的Undo 操作。
編譯方式下有一些命令是要以/開始的,
例如查詢字串就是:/string 則在檔案中匹配查詢string 字串。
在編輯模式下按下:就進入命令方式。
基本命令解釋:
1.游標命令
k、j、h、l——上、下、左、右游標移動命令。
雖然您可以在Linux 中使用鍵盤右邊的4 個游標鍵,
但是記住這4 個命令還是非常有用的。這4 個鍵正是右手在鍵盤上放置的基本位置。
nG——跳轉命令。n 為行數,該命令立即使游標跳到指定行。
Ctrl+G——游標所在位置的行數和列數報告。
w、b——使游標向前或向後跳過一個單詞。
2.編輯命令
i、a、r——在游標的前、後以及所在處插入字元命令(i=insert、a=append、r=replace)。
cw 、dw—— 改變( 置換)/刪除游標所在處的單詞的命令 (c=change 、d=delete)。
x、d$、dd——刪除一個字元、刪除游標所在處到行尾的所有字元以及刪除整行的命令。
3.查詢命令
—- /string、?string——從游標所在處向後或向前查詢相應的字串的命令。
4.拷貝複製命令
—- yy、p——拷貝一行到剪貼簿或取出剪貼簿中內容的命令。
常用操作:
無論是開啟新檔或修改舊檔案,都可以使用vi,所需指令為:
$ vi filemane
如果檔案是新的,就會在熒幕底部看到一個資訊,告訴使用者正在建立新檔案。
如果檔案早已存在,vi 則會顯示檔案的首廿四行, 使用者可再用游標(cursor)上下移動。


上面是一個經vi 開啟的模擬檔案,一行開始處的波折號(~)表示檔案的結尾。
—指令i 在游標處插入正文
—指令I 在一行開始處插入正文
—指令a 在游標後追加正文
—指令A 在行尾追加正文
—指令o 在游標下面新開一行
—指令O 在游標上面新開一行
在插入方式下,不能打入指令,必需先按〈Esc〉鍵,返回命令方式。
假若戶不知身處何態,也可以按〈Esc〉鍵,不管處於何態,都會返回命令方式。
在修改檔案時,如何存檔及退出指定檔案都非常重要。在vi 內,行使存檔或退出的指令時,
要先按冒號(:),改變為命令方式,使用者就可以看見在熒幕左下方,出現冒號(:),
顯示vi 已經改為指 令態,可以進行存檔或退出等工作。
:q!放棄任何改動而退出vi,也就是強行退出
:w 存檔
:w! 對於只讀檔案強行存檔
:wq 存檔並退出vi
:x 與wq 的工作一樣
:zz 與wq 的工作一樣刪除正文
刪除或修改正文都是利用編輯方式,故此,下面所提及的指令只需在編輯方式下,
直接鍵入指令即行。
—x 刪除游標處字元(Character)
—nx 刪除游標處後n 個字元
—nX 刪除游標處前n 個字元
—ndw 刪除游標處下n 個單詞(word)
—dd 刪除整行
—d$或D 刪除由游標至該行最末
—u 恢復前一次所做的刪除
當使用vi 修改正文,加減字元時,就會採用另一組在編輯方式下操作的指令。
— r char 由char 代替游標處的字元
—Rtext〈Esc〉由text 代替游標處的字元
—cwtext〈Esc〉由text 取代游標處的單詞
—Ctext〈Esc〉由text 取代游標處至該行結尾處
—cc 使整行空白,但保留游標位置,讓你開始打入
—如刪除指令一樣,在指令前打入的數,表示執行該指令多少次。

要檢索檔案,必需在編輯方式下進行。
—/str〈Return〉向前搜尋str 直至檔案結尾處
—?str〈Return〉往後搜尋str 直至檔案開首處
—n 同一方向上重複檢索
—N 相反方向上重複檢索
—vi 纏繞整個檔案,不斷檢索,直至找到與模式相匹配的下一個出現。
全程替換命令:
:%s/string1/string2/g 在整個檔案中替換“string1”成“string2”。
如果要替換檔案中的路徑:
使用命令“:%s#/usr/bin#/bin#g”可以把檔案中所有路徑/usr/bin 換成/bin。
也可以使用命令“:%s/\/usr\/bin/\/bin/g”實現,其中“\”是轉義字元,表明其後的“/”字元是具有實際意義的字元,不是分隔符。

同時編輯2 個檔案,拷貝一個檔案中的文字並貼上到另一個檔案中:
命令如下:
—- vi file1 file2
—- yy 在檔案1 的游標處拷貝所在行
—- :n 切換到檔案2 (n=next) 或者按ctrl+ww,就在兩個檔案間切換。
—- p 在檔案2 的游標所在處貼上所拷貝的行
—- :n 切換回檔案1 (Ctrl +WW 也可實現切換)

將檔案中的某一部分修改儲存到臨時檔案,
例如僅僅把第20~59 行之間的內容存檔成檔案/tmp/1,我們可以鍵入如下命令。
—- vi file
—- :20,59w /tmp/1

如果要在 vi 執行期間,轉到shell 執行,使用驚歎號(!)執行系統指令,
例如在vi 期間,列出當前目錄內容,可以鍵入 :
:!ls
另一方面,使用者可以在主目錄中建立.exrc 環境檔案,用set 打入選項,
每次呼叫vi 時,就會讀入.exrc 中的指令與設定。下面是.exrc 環境檔案的例項:
set wrapmarging=8
set showmode
set autoindent