Конфигурирование шага табуляции переменной ширины в Vim

Одно общее соглашение состоит в том, чтобы использовать "_" в качестве имени переменной для элементов кортежа, который Вы хотите проигнорировать. Например:

def f():
    return 1, 2, 3

_, _, x = f()
7
задан Magnus 7 September 2009 в 16:07
поделиться

2 ответа

В настоящее время нет. Не с официальными сборками.

Однако, если вы готовы приложить немного усилий на своей стороне, я помню, что был патч для чего-то в этом роде. Посетите страницу патчей vim.

1
ответ дан 7 December 2019 в 12:23
поделиться

Если вам на самом деле не нужно менять табуляторы и вы можете просто вставить правильное количество пробелов, я бы посоветовал вам написать сценарий. Вот быстрая и грязная версия, которая может делать то, что вы хотите:

let s:tabstops = [0, 5, 30, 50, 60, 70, 80]
fun! Find_next(pos)
  if a:pos > min(s:tabstops) && a:pos < max(s:tabstops) 
    let my_count = 0
    while my_count < len(s:tabstops) - 1
      if a:pos > get(s:tabstops, my_count) && a:pos < get(s:tabstops, my_count+1)
        return get(s:tabstops, my_count+1)
      endif
      let my_count = my_count + 1
    endwhile
    return -1
  endif
  return -1
endfun
fun! Tabbing()
  let pos = col('.')
  let next_stop = Find_next(pos)
  let the_command = "normal i"
  let my_count = 0
  while my_count < next_stop - pos
    let the_command = the_command . " "
    let my_count = my_count + 1
  endwhile
  let the_command = the_command . ""
  execute the_command
endfun
imap <TAB> j<ESC>:call Tabbing()<CR>lxi 
4
ответ дан 7 December 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: