標籤:java 使用 io strong 檔案 ar 代碼 amp
在vim中高亮關鍵字
syntax enable
可以高亮關鍵字:一般後面還要在跟一個syntax on
開啟文法高亮
syntax clear
清除關鍵字高亮
在secureCRT不是xterminal模式的時候,試了一下,沒起作用啊,如果是xterminal模式的時候是會起作用的
在vim中尋找
/
後面跟要尋找的字串:從當前游標位置向上搜尋
?
後面跟要尋找的字串:從當前游標位置向下搜尋
n
找下一個
N
找上一個
清除並重畫螢幕
vim快速鍵定製
- 對於鍵盤符號,可以使用:help key-notation查看協助
定製編輯環境
set命令用來定製編輯環境。
set showmode
當vi處在輸入模式下時顯示提示資訊
set sm
即時顯示配對的)或}
set ts=n
把定位字元設定為n(預設為8)
set ai
下一行從前一行的縮排位置開始
set number
在編輯器中顯示行號
set nonu
取消在編輯器中的行號顯示
set hlsearch
高亮顯示搜尋到的字串
set incsearch
輸入字串就馬上顯示匹配點
set ruler
尺規,用於顯示光線標位置的行號和列號,逗號分隔。每個視窗都有自己的尺規。如果視窗有狀態行,尺規在那裡顯示。否則,它顯示在螢幕的最後一行上。
set cindent
:cindent控制縮排量是通過shiftwidth選項的值,而不是通過tabstops的值,shiftwidth的預設值是8
set shiftwidth
:改變shiftwidth的值
set helplang=cn
:vim協助文檔無法顯示中文時,加入這句試試
set encoding=utf-8
:
colo murphy
:有的時候使用vim開啟檔案時,顯示的顏色不適合閱讀,可以使用這條命令將配色改成這種黑底
我在gvim中使用了上面的方法進行了設定,但是貌似沒有起到作用,不知道是我使用得不對還是另有原因
移動游標
h
游標左移
l(或空格鍵)
游標右移
k(或[Ctrl+p])
游標上移
j(或[Ctrl+n])
游標下移
[Ctrl+f]
向前翻頁
[Ctrl+b]
向後翻頁
[Ctrl+d]
向前翻半頁
[Ctrl+u]
向後翻半頁
1G
跳到檔案首
40G
跳到第40行
G
跳到檔案尾
[Ctrl+g]
顯示當前行號及檔案的百分比
Ctrl +E
scroll down
Ctrl +Y
scroll up
在一行內移動游標
B、E和W命令的作用與b、e和w的作用一樣,只是後者忽略了標點符號。
b
向後移動到單詞首
e
向前移動到單詞尾
w
向前移動到單詞首
0
或| 移動到行首
30|
移動到第30列
^
移動到本行的第一個單詞的首字元
$
移動到行尾
: num
跳轉到指定行號
插入文本
i
在游標的左側插入字元
20i-[Esc]
插入20個連字號
I
在行首插入字元
a
在游標的右側添加文本
A
在行尾添加文本
o
在當前行下面插入一空行
O
在當前行上面插入一空行
選擇文本
ve
:選擇整個單詞
yw
:複製游標所在的單詞
5yl
:複製5個字元的輸入
刪除和移動文本
x
刪除游標所在的字元
6x
刪除游標位置的字元以及右側的5個字元
X
刪除前一個字元
dd
刪除當前行
4dd
刪除4行
dw
刪除一個單詞
d0
刪除到行首
d$
刪除到行尾
d
刪除一個地區(只用於vim)
p
把被剪下的文本粘貼到下面(整行)或右側(部分行)
P
把被剪下的文本粘貼到上面(整行)或左側(部分行)
add
把當前行粘貼到緩衝區a裡
ap
把緩衝區a裡的內容粘貼到當前位置
J
把當前行於下一行合并為一行
xp
調換兩個字元的位置(其實它是刪除一個字元,然後再又粘貼一個字元)
一些對程式員特別有用的快速鍵
[[
= 移動到前一個行首的{
字元上,等價於?^{
:其實就是尋找上一個函數
]]
= 移動到下一個行首的{
字元上,等價於/^{
:其實就是尋找上一個函數
[]
= 移動到前一個行首的}
字元上,等價於?^}
:用起來感覺不是很方便
][
= 移動到下一個行首的}
字元上,等價於?^}
:用起來感覺不是很方便
f
= 到前一個空行上
g
= 到下一個空行上
gd
= 到當前局部變數的定義處(當前的意思是游標停留其上的單詞).:使用之後所有與當前游標所在的單詞匹配上的單詞都高亮了
gD
:跳轉到變數定義的地方
*
= 到與當前單詞相同的下一個單詞上
#
= 到與當前單詞相同的上一個單詞上
‘‘
= 到上次游標停靠的行
%
:可以讓游標移動到與他相匹配的括弧上去:這個非常有用
>
增加縮排,x>
表示增加以下x行的縮排
<
減少縮排,x<
表示減少以下x行的縮排
syntax enable
+ syntax on
開啟文法高亮
修改文本
rch
把游標位置的字元替換為ch
R
替換游標右邊的文本
s
把游標所在的字元替換為任意個字元
S
替換整行內容
cw
修改一個單詞
c
修改地區裡的文本(vim)
~
改變所掃描的或地區裡的字母的大小寫
!tr‘[a-z]‘‘[A-Z]‘
把地區裡的字母轉換為大寫(vim)
!tr‘[A-Z]‘‘[a-z]‘
把地區裡的字母轉換為小寫(vim)
vim 的tab相關
vim 從 vim7 開始加入了多標籤切換的功能, 相當於多視窗。之前的版本雖然也有多檔案編輯功能, 但是總之不如這個方便啦。
:tabnew
[++opt選項] [+cmd] 檔案 : 建立對指定檔案新的tab
:tabe
在一個新tab中開啟指定的檔案
:tabc
關閉當前的tab
:tabo
關閉所有其他的tab
:tabs
查看所有開啟的tab
:tabp
前一個
:tabn
後一個
標準模式下:
gt
, gT
可以直接在tab之間切換
:help table
:詳細用法請查看相關協助文檔
Vim比較兩個檔案
vim -d file1 file2
直接開啟兩個檔案對比
vim file1
開啟第一個檔案,然後使用vert diffsplit file2
開啟第二個檔案進行對比;vert
表示垂直分割視窗,預設為水平分割視窗
- 直接對比兩個檔案的不同:使用
diffthis
分別在兩個視窗輸入;
[c
, ]c
定位不同點: 分別跳到前一個、後一個不同點;
ctrl-w w
:視窗跳轉: 跳到下一個視窗
ctrl-w h/l
: 跳到左側(右側)視窗
ctrl-w j/k
跳到上方(下方)視窗
dp
文檔合并:將差異點的當前文檔內容合并到另外一個文檔(diff put)
do
將差異點的另一個文檔內容拷貝到當前文檔
zo
臨時展開被摺疊的相同內容
zc
重新摺疊
複製文本
yy
複製當前行
6yy
複製六行
yw
複製單詞
y
複製地區(vim)
p
把複製的文本粘貼到右邊或下面
P
把複製的文本粘貼到左邊或上面
"ayy
把當前行複製到緩衝區a裡
"ap
恢複緩衝區a裡的內容
啟動編輯器
vi +100 foo
開啟檔案foo並把游標定位在100行
vi +/pat foo
開啟檔案foo並把游標定位在pat第一次出現的行
vi +foo
開啟檔案foo,把游標定位在檔案尾
vi foo1 foo2
... 開啟檔案foo1,用n切換到foo2等
vi -r foo
把分頁檔裡的內容恢複到緩衝區裡
vi -R foo
一隻讀模式開啟foo檔案
儲存與退出
:w
儲存檔案並繼續編輯
:w bar
同微軟Windows作業系統中的“另存新檔……”
:w! bar
同上,但是覆蓋現存的檔案bar
:n1,n2w foo
把n1到n2之間的行儲存到檔案foo
:n1,n2w>>foo
把n1到n2之間的行添加到foo檔案尾
:.w foo
把當前行儲存到檔案foo
:$w foo
把最後一行儲存到檔案foo
:x
儲存並退出編輯器
:wq
同上
:q
如果檔案的內容沒有變化則退出編輯器
:q!
放棄修改並退出編輯器
vim中瀏覽目錄
:E
:開啟vim預設路徑的檔案夾
–
:到上級目錄
D
:刪除檔案(大寫)
R
:改檔案名稱(大寫)
s
:對檔案排序(小寫)
x
:執行檔案
多檔案編輯
如果當前行還沒有儲存(並且 autowrite 未設定),則不能使用:e、:n和:rew命令。命令後面的!使得安全特性無效。
:e foo
停止對當前檔案的編輯,開始編輯foo檔案
:e! foo
同上,但是取消對當前檔案的修改
:e!
裝入當前檔案的最近儲存的內容
[Ctrl+^]
返回到最近編輯的檔案
:n
編輯下一個檔案(當用vi同時編輯多個檔案時)
:set autowrite(aw)
在用:n切換到下一個檔案之前自動儲存當前檔案
:rew
返回到檔案清單的第一個檔案(當用vi同時編輯多個檔案時)
:r foo
把foo檔案的內容插入當前行的下面
多視窗(vim)
:sq
把當前視窗拆分為兩個
:new
開啟一個新的空白視窗
:[Ctrl+w][Ctrl+w]
在視窗之間切換 Ctrl+w+R 將視窗移到右邊 Ctrl+w+L 將視窗移到左邊
:on
把當前視窗變為唯一的視窗
:q
退出當前視窗
:qa
退出所有視窗
:xa
儲存並退出全部視窗
[Ctrl]+
增大視窗尺寸
[Ctrl]-
減小視窗尺寸
搜尋與重複
搜尋模式pat可以時一個字串,也可以是一個Regex。vi使用一套專用的字元序列來執行一行內的搜尋。
/pat
向前搜尋pat
?pat
向後搜尋pat
/printf
向前搜尋printf
?[0-0]$
向後搜尋行尾的數字
/^#
向前搜尋行首的#
n
按上次搜尋方向重複搜尋
N
按與前次搜尋的相反方向重複搜尋
:set wrapscan(ws)
繼續搜尋直至達到檔案尾
:set ignorecase(ic)
搜尋時不區分大小寫
:set magic
保留Regex字元的意義
fc
在當前行向前搜尋字元c
Fc
在當前行向後搜尋字元c
;
在當前行重複上次向前搜尋
,
在當前行重複上次逆向搜尋
*
:向下尋找游標所在的單詞,類似於/
#
:向上尋找游標所在的單詞,類似於?
替換
源模式s1也可以是Regex。使用歐冠地址時,"."代表當前行,"$"代表最後一行,"1,$"代表整個檔案。
:.s/s1/s2
把當前行中第一次出現的s1替換為s2
:1,$s/s1/s2
把整個檔案裡的s1替換為s2
:1,$s/echo/printf/g
把全部的echo替換為printf
:1,$s/s1/s2/gc
按互動方式把全部s1替換為s2
:1,$s/#//g
刪除檔案中所有的“#”
:3,10s/^/#/g
在3至10行的行首插入“#”
:$s/$/;/
在最後一行的行尾插入“;”
:1,$s/s1/s2/g
把所有的s1替換為s2
:1,$s/HEAD/<&>/g
把所有的HEAD替換為
標誌與書籤
ma
設定一個標籤a
‘a
移動到標籤a
"
在當前標誌與前一個標誌位置之間切換
重做與恢複
.
重複上次命令
u
取消上次的編輯命令(在vim裡取消所有以前的命令)
[Ctrl+r]
重做上次取消的操作(只限於vim)
U
取消所有對當前行的操作
"4p
從緩衝區中恢複第4次最近的刪除操作
縮寫表示
:ab name stg
把name縮寫為stg
:unab stg
刪除stg縮寫
:ab
列出所有的縮寫
映射鍵
:map key commands
把key映射到commands
:map! key commands
在輸入模式下把key映射到commands
:unmap key
取消命令模式下的key映射
:unmap! key
取消輸入模式下的key映射
:map
顯示命令模式下所有的映射
:map!
顯示輸入模式下的所有映射
與UNIX的介面命令
:!cmd
執行UNIX的cmd命令
:!%
把當前檔案作為shell或perl指令碼執行
:r !cmd
把cmd命令的結果插入到當前行的下面
:r !head -n 3 foo
把foo檔案前三行內容插入到當前行的下面
sh
暫時退出UNIX shell 環境
[Ctrl+z]
暫停編輯(用fg命令可以返回vi編輯器)
:!cc%
編譯正在編輯的C程式
:!javac %
編譯正在編輯的Java程式
其它
- 在檔案中要修改部分文本的縮排:在命令模式下,按v去選擇多行,再按shift+>(<)來改變縮排。
- 也可以使用3再按shift+>(<)來改變縮排(3倍)
外掛程式安裝
- 普通外掛程式自己將
*.vim
複製到~/.vim/plugin中即可
*.vmb
的外掛程式:則首先需要使用vim將外掛程式開啟,然後使用命令:so %
進行安裝
*.vba
的外掛程式:首先使用vim開啟外掛程式,然後使用UseVimBall ~/.vim
進行安裝
Vim的摺疊
- 設定摺疊方式: 可用選項 ‘foldmethod‘ 來設定摺疊方式:set fdm=*
- 6 種方法來選定摺疊:
- manual 手工定義摺疊
- indent 更多的縮排表示更進階別的摺疊
- expr 用運算式來定義摺疊
- syntax 用文法高亮來定義摺疊
- diff 對沒有更改的文本進行摺疊
- marker 對文中的標誌摺疊
注意,每一種摺疊方式不相容,如不能即用expr又用marker方式,我主要輪流使用indent和marker方式進行摺疊。
使用時,用:set fdm=marker 命令來設定成marker摺疊方式(fdm是foldmethod的縮寫)。
要使每次開啟vim時摺疊都生效,則在.vimrc檔案中添加設定,如添加:set fdm=syntax,就像添加其它的初始化設定一樣。
- 摺疊命令
選取了摺疊方式後,我們就可以對某些代碼實施我們需要的摺疊了,由於我使用indent和marker稍微多一些,故以它們的使用為例:
如果使用了indent方式,vim會自動的對大括弧的中間部分進行摺疊,我們可以直接使用這些現成的摺疊成果。
在可摺疊處(大括弧中間):
zc 摺疊
zC 對所在範圍內所有嵌套的摺疊點進行摺疊
zo 展開摺疊
zO 對所在範圍內所有嵌套的摺疊點展開
[z 到當前開啟的摺疊的開始處。
]z 到當前開啟的摺疊的末尾處。
zj 向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。
zk 向上移動到前一摺疊的結束處。關閉的摺疊也被計入。