1. vim 語法基本特徵
" 注釋
\ 續行
let 關鍵字為變數賦值
2. vimscript 變數範圍
字首 含義
g: varname 變數為全域性變數
s: varname 變數的範圍為當前的指令碼檔案
w: varname 變數的範圍為當前的編輯器視窗
t: varname 變數的範圍為當前的編輯器選項卡
b: varname 變數的範圍為當前的編輯器緩衝區
l: varname 變數的範圍為當前的函式
a: varname 變數是當前函式的乙個引數
v: varname 變數是 vim 的預定義變數
3. 指令碼可以使用如下變數訪問 vim 提供的值容器
vimscript 偽變數
字首 含義
&varname 乙個 vim 選項
&l:varname 本地變數(區域性變數)
&g:varname 全域性變數
@varname 乙個 vim 暫存器
$varname 乙個環境變數
4. 比較操作:(condition)
在 vimscript 中,比較函式始終執行數字比較,除非兩個運算物件都是字串。
特別的,如果乙個運算物件是字串,另乙個是數字,那麼字串將被轉換為數字,然後再對兩個數字進行數值比較
let ident = 'vim'
if ident == 0 "always true (string 'vim' converted to number 0)
在這種情況下,一種更健壯的解決方案是:
if ident == '0'
任何字串比較函式都可以被顯式地標記為大小寫敏感(通過附加乙個 #)或大小寫不敏感(通過附加乙個 ?):
if name ==? 'vim'
if name ==# 'vim'
5. 算術運算,注意整數和實數差別。
let filecount = 234
echo filecount/100 |" echoes 2
echo filecount/100.0 |" echoes 2.34
6. 語句 (statement)
****************************************
賦值語句:let
let =
****************************************
流程控制語句:
******************************=
條件控制語句:if 語句
******************************=
if elseif
else
endif
******************************=
迴圈語句:
******************************=
-----------------------
while 語句
-----------------------
while
[ continue ]
[ break ]
endwhile
-----------------------
for 語句
-----------------------
for in
endfor
7. command
vim script 語句可以直接支援:命令
加上normal 關鍵字, 也支援normal 模式命令,
起碼,把script 做成批命令是沒有問題了。
8. 函式
vim 有許多內建函式。 還可以自定義函式。
內建函式,內建暫存器,:命令等構成與編輯緩衝的連線。使可以程式設計控制。
自定義函式,
函式格式:
function (, , ...)
[ return ]
endfunction
例 求兩數中最小值函式:
function! s:min(num1, num2)
return a:num1 < a:num2 ? a:num1 : a:num2
endfunction
vimscript學習筆記 五 對映
一 vimscript基本對映 如果說vimscript有乙個特性使得你能夠按照你的意願定製vim,那就 非鍵盤對映 莫屬 分割線 你可以 通過鍵盤對映 告訴 vim 當我 按下這個鍵 時,我需要你 放棄 abandon 預設 操作,按我的想法做 1 從normal模式的鍵盤對映開始 map x效果...
vimscript學習筆記 一 前言
一 說明 vim是乙個功能相當強大的編輯器,本篇章將向你介紹vimscript,一門用於定製vim的指令碼語言。讀完本書 你將能夠定製vim使其更加適應你的文字編輯需求,以後再使用vim將有更好的體驗。目標 你需要根據你的 工作性質 喜好 以及 習慣 定製它 備註 一天僅很少的時間使用vim,學習v...
Go基礎程式設計 Socket程式設計
socket起源於unix,而unix基本哲學之一就是 一切皆檔案 都可以用 開啟open 讀寫write read 關閉close 模式來操作。socket就是該模式的乙個實現,網路的socket資料傳輸是一種特殊的i o,socket也是一種檔案描述符。socket也具有乙個類似於開啟檔案的函式...