vim中經常會寫print "a=%s"%a,這樣的代碼,可是每次都得現輸,怎麼快速輸入?直接替掉a
你這個語法有點奇怪,你確定 a 前面也要加 % 嗎?確定逗號位置對嗎?當然,這些不影響回答問題……
我推薦使用 SirVer/ultisnips · GitHub 插件。具體使用方式,你可以查閱文檔,我複製一段文檔里提供的 printf 的配置。
snippet printf
printf("${1:%s}
"${1/([^%]|%%)*(%.)?.*/(?2:, :);)/}$2${1/([^%]|%%)*(%.)?.*/(?2:);)/}
endsnippet
———————
我觀摩了一下 UltiSnips 的 Demo 錄像,發現錄像里的 print 就是題主的用法,原來這就是 python 啊……呵呵自己一下。:-p
謝邀,雖然這個問題比較中二。。不過還是本著一顆解救生靈於水火的心回答一下吧。。。
首先,就我所理解,你需要解決的是一個調試時重複輸入一個變數名的問題。
那麼,就這個問題,有三種可能的方案(優劣稍後再分析):
1. 如題主想要的,編輯器自動生成並插入代碼
2. 自定義宏來解決 (如果語言本身不支持宏定義,那可能需要想辦法hack一下,如我在這裡做的事情Home · luochen1990/coffee-mate Wiki · GitHub)3. 通過調試工具來解決調試不方便的問題
方案1可以說是最次的。因為這僅僅是解決了第一次輸入時重複輸入的問題,如果之後要把「列印a」改成「列印b」,你還是得同時改兩個地方,這是很中二的做法。。
方案2可以說是最優的,但是能不能實現也受限於語言。因為通過宏解決重複問題,不僅僅對於調試這個場景管用,還對於很多其它場景下的避免重複有用,可以說習得這個技能性價比很高。
方案3是針對這個場景的最優方案。當然調試工具的熟悉也需要一些成本,能提高調試效率也是真的,然而這對於在其它場景下避免重複並無用處。所以雖然它是這個場景下的最優方案,但並非我的首選。
所以說,之所以大家要強調 「要通過元編程解決問題,而非通過編輯器/IDE解決問題」 ,原因就在這裡。UltiSnips 插件加個補全, 搞定
謝邀。我能想到的話,可以寫個函數
function! ExpandPrint()
let a = input("a = ")
return "print "" . a . "=%s" % " . a
endfunction
然後定一個快捷鍵,比如
inoremap &
然後在 insert 模式下按 &
推薦使用UltiSnip,定義一個模板展開就行了
用個宏啊,print "a ...." , 然後0, fa, r
在vimrc中寫一個函數,綁定一個快捷鍵就可以了啊
謝邀。 @寶紀竊以為如果要用vim就別偷懶別閑麻煩,而且鄙人也不喜給vim上插件,閑麻煩就上IDE吧,折衷一點就用sublime吧,我就純粹只拿它當編輯器使 希望對你有幫助:)
https://github.com/Shougo/neosnippet.vim
樓主寫的是python吧
當你不停重複print寫法時要考慮寫log了
再說了yy wdw幾個鍵也不難按大不了錄個宏感覺問題沒描述清楚。最笨的辦法就是最好的辦法。你不如把這條語句保存在一個文件裡面
推薦閱讀:
※bin文件怎麼打開?
※vim配置ycm,同時支持python和python3了,如何只支持python3?
※如何配置vimrc支持普通編輯器的操作?
※vim 末尾會自動添加
?
※用vim被人說裝逼,怎麼辦?