在vim中,有没有一种方法可以显示当前缓冲区行中的所有列号?

3

希望能有一个选项,可以显示当前行或整个缓冲区的所有列号码,这样我就可以知道确切的导航位置。是否有这样的选项,还是我需要自己编写程序(不要啊 XD)?

2个回答

6
:h 'statusline'

只需要定义想要打印的内容,就可以轻松实现。例如:

" RulerStr() comes from http://www.vanhemert.co.uk/vim/vimacros/ruler2.vim
function! RulerStr()
  let columns = &columns
  let inc = 0
  let str = ""
  while (inc < columns)
    let inc10 = inc / 10 + 1
    let buffer = "."
    if (inc10 > 9)
      let buffer = ""
    endif
    let str .= "....+..." . buffer . inc10
    let inc += 10
  endwhile
  let str = strpart(str, 0, columns)
  return str
endfunction

let s:saved_stl = {}
function! s:ToggleRuler()
  let buf = bufnr('%')
  if has_key(s:saved_stl, buf)
    let &l:stl = s:saved_stl[buf]
    unlet s:saved_stl[buf]
  else
    let s:saved_stl[buf] = &l:stl
    setlocal stl=%{RulerStr()}
  endif
endfunction

nnoremap <silent> µ :call <sid>ToggleRuler()<cr>

好的,我会尝试一下,并会回来告诉结果。 - Arthur
寻找与此相同的解决方案,但是在Visual Studio 2017中。有人有任何线索吗? - miara

5
您可以使用“设置标尺”功能,它会在底部显示行号和列位置。

我想要看到所有列的编号,而不仅仅是当前的列:D - Arthur
2
哦...从未听说过,我不知道这是否有帮助,但您可以使用“<num> |”命令将光标移动到特定列。例如:'8 |'将把光标移动到第8列。我不知道如何显示列号。 - Vikram.exe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接