[英]How to show a vertical line in an Altair chart using mark_rule()
[英]How to show a vertical rule at the beginning of the current line?
我正在尋找一種方式在vim中輕松可視化python代碼的各種縮進級別。 如果在當前行的開頭始終存在垂直規則,則會有所幫助。 這樣我就可以掃描代碼以查看當前塊的結束位置。 有沒有插件可以做到這一點?
首先想到的是,您可以從實現代碼折疊的插件中受益。
這是一個帶有示例的教程 (向下滾動到“代碼折疊”),它建議使用vim的“高效python折疊”插件 。
(來源: dancingpenguinsoflight.com )
在vim中(不需要插件):
:設置列表
默認情況下會將標簽顯示為“^ I”,將EOL顯示為“$”。
同
:set lcs = tab:>>
你將'^ I'設置為'>'(通過以下方式查看更多信息:help listchars)。
我不確定,但應該有另一個選項來設置標簽寬度。
你也可以訂
:設置autoindent
對於python
我認為你正在尋找的命令是“colorcolumn”,我認為這是vim 7.2或7.3的新功能。
您可以使用自動命令觸發器CursorMoved進行操作
autocmd CursorMovedI * set colorcolumn=match(getline("."),"\S")
您可能必須使用中間變量等來使用它。
這將做什么(如果適當地埋在一個函數內),將一條垂直線放在當前行的起始字符處。 這可能很方便,但應該只能進行切換。
編輯:事實證明這比我原先想象的要復雜一些。 基本上你必須消除文字標簽的影響(如果它們出現在你的文件中)
autocmd CursorMoved * let &colorcolumn=matchend(substitute(getline("."),'\t',repeat(" ",&ts),'g'),"\\S")
當我第一次把它放在一起時,我覺得它很傻,但只是玩了幾分鍾,我就像效果一樣。
請注意,您可能需要或可能不需要CursorMovedI版本。
您可以為它定義自己的語法項(或使用匹配項)。 快速而骯臟的解決方
let colors=["red", "white", "yellow", "green", "blue"]
let matchids=[]
for level in range(1, len(colors))
execute "hi IndentLevel".level." ctermbg=".colors[level-1]." guibg=".colors[level-1]
call add(matchids, matchadd('IndentLevel'.level, '^ '.repeat(' ', level-1).'\zs '))
endfor
這將突出顯示具有不同顏色的五個第一縮進級別。
要禁用:
while !empty(matchids)
call matchdelete(remove(matchids, 0))
endwhile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.