国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

vim 使用技巧

2024-07-21 02:33:13
字體:
來源:轉載
供稿:網友

  " 在編輯的時候,我經常需要暫時離開當前的位置作一些操作后再返回原處.雖然m和'命令
" 但是一個寄存器只能保存一項內容,假如我需要保存多項當前位置就必須要用多個寄存
" 器并記住其保存順序,才能正確返回.我只想把自己的注重力放在要編輯的內容上,而不
" 是去費力地記住這些東西.我希望寄存器能像堆棧一樣工作,安照后進先出的順序處理
" 保存的多項位置.
" 我用一個字符串來模擬堆棧的行為,各項之間用符號#分開.入棧時,將內容追加到字符串
" 的右邊;出棧時,取出從右邊開始的第一個#開始的子串.
 2004-12-21 17:48:24
" 在編輯的時候,我經常需要暫時離開當前的位置作一些操作后再返回原處.雖然m和'命令
" 但是一個寄存器只能保存一項內容,假如我需要保存多項當前位置就必須要用多個寄存
" 器并記住其保存順序,才能正確返回.我只想把自己的注重力放在要編輯的內容上,而不
" 是去費力地記住這些東西.我希望寄存器能像堆棧一樣工作,安照后進先出的順序處理
" 保存的多項位置.
" 我用一個字符串來模擬堆棧的行為,各項之間用符號#分開.入棧時,將內容追加到字符串
" 的右邊;出棧時,取出從右邊開始的第一個#開始的子串.

function! PushPosition()
let l:locate = line(".") . "." . col(".")

if !exists("s:position_heap")
let s:position_heap = "#" . l:locate
else
let s:position_heap = s:position_heap . "#" . l:locate
endif

echo "push position:" . l:locate
endfunction

function! PopPosition()
if !exists("s:position_heap")
return
endif

let l:last_push = strridx(s:position_heap, "#")
if l:last_push == -1
return
else
let l:position = strpart(s:position_heap, l:last_push + 1)
let l:row = strpart(l:position, 0, stridx(l:position, "."))
let l:column = strpart(l:position, stridx(l:position, ".") + 1)
call cursor(l:row, l:column)

let s:position_heap = strpart(s:position_heap, 0, l:last_push)
endif
endfunction

---------------
這是我自己寫的VIM兩個函數,放在plugin目錄下。
在查看程序代碼時很有用。
我將這兩個函數調用綁定在F9和CTRL+F9上,當碰到要記錄位置時,就F9,F9,...,需要返回原點時就CTRL+F9,CTRL+F9,...



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 任丘市| 京山县| 林甸县| 金沙县| 高碑店市| 黄大仙区| 正宁县| 兴山县| 安新县| 伊吾县| 南澳县| 祁门县| 清涧县| 彩票| 宁安市| 涞水县| 新民市| 大石桥市| 敦煌市| 陆丰市| 育儿| 赤城县| 南乐县| 南昌县| 抚顺市| 上饶市| 霍城县| 延津县| 黄龙县| 敦煌市| 左贡县| 漠河县| 容城县| 昭通市| 察雅县| 双鸭山市| 台前县| 高陵县| 东乌珠穆沁旗| 汉中市| 江孜县|