Как каждый выравнивает код (фигурные скобки, parens и т.д.) в vi?

Как Вы украшаете / выравниваются / код формата в vi? Какова команда?

Я вставил в ломте кода, и мне нужно было форматировать/выравнивать все это..., очевидно, я - vi новичок.

x

27
задан i_am_jorf 23 April 2010 в 22:00
поделиться

3 ответа

= {движение}

: h =

P.S. Вы не должны использовать vi, если vim доступен.

5
ответ дан 28 November 2019 в 05:01
поделиться

Если вручную настраивать отступы, я открою визуальный блок с помощью V в первой или последней строке, которую я хочу изменить отступ, перейду к фигурной скобке, содержащей блок, перейду к другой фигурной скобке с помощью % , затем сместите строку с помощью > или <

Если отступы слишком велики, я сдвину все полностью влево с помощью < и повторю это с . , а затем заново все отступы.

Другое решение - использовать команду unix fmt , как описано в . Ваша проблема с Vim в том, что вы не работаете с vi. , {!} Fmt

4
ответ дан 28 November 2019 в 05:01
поделиться

Эти команды в моем ответе работают в vim. Большинство людей, которые думают, что они используют vi, используют vim. Чтобы узнать, действительно ли ваш vi является vim, откройте vi и введите : version - если это vim, он скажет об этом. В противном случае вы можете просто увидеть номер версии без названия программы. Кроме того, когда вы впервые открываете vim, вы обычно видите какой-то экран-заставку с надписью «VIM - VI iMproved» ...

Автоматический отступ

Чтобы включить автоматический отступ, убедитесь, что vim знает тип файла, который вы редактируете (обычно он автоматически определяет это по расширению имени файла, но может не понять этого с некоторыми типами файлов). Вы можете указать ему тип файла, используя меню для выделения синтаксиса. Затем сделайте следующее:

:filetype indent on

Вы можете отключить автоматический отступ с помощью

:filetype indent off

Автоматическая настройка / исправление отступа

Как правило, = {движение} выравнивает код по уровню отступа.

  • == выровнять текущую строку
  • = i { выровнять внутренний блок
  • =% выровнять по соответствующей круглой скобке / скобке под курсором
  • = 14j или 14 == выровняйте следующие 14 строк
  • = G выровняйте по концу файла
  • vG = то же самое, выровняйте по концу {{ 1}} файл (но с использованием визуального режима)
  • vjjj = выровнять четыре строки (с использованием визуального режима)

Отступ вручную

Если vim неправильно определяет уровень отступа, есть два способа изменить it:

  • Если вы находитесь в обычном режиме (где все является командой), выполните << , чтобы сдвинуть строку влево, или >> , чтобы сдвинуть ее вправо на одну вкладку . Вы можете сделать это с помощью нескольких строк, используя те же команды перемещения, которые я показал выше (например, > i { отступает от текущего внутреннего блока кода).
  • Если вы находитесь в режиме вставки, вы можете увеличить отступ строки (не перемещая курсор), выполнив Ctrl-T , или убрать отступ на одной табуляции с помощью Ctrl-D

Выравнивание знаков равенства и т. Д.

Если вы хотите выровнять знаки равенства в списке объявлений, вам следует рассмотреть возможность использования этого сценария vim: http://www.vim.org/scripts/script.php?script_id = 294

Регулировка размеров отступа / табуляции

Если вы хотите, чтобы vim использовал пробелы вместо табуляции при отступах, запустите эту команду (или подумайте о добавлении ее в ваш файл vimrc)

 :set expandtab

Чтобы установить, сколько пробелов равно tab, я обычно делаю это:

 :set expandtab softtabstop=3 tabstop=3 shiftwidth=3
  • tabstop - сколько столбцов учитывает табуляция (влияет на отображение существующих символов табуляции)
  • shiftwidth - управляет размером повторного обозначения с помощью << и >>, среди других команд.
  • softtabstop - сколько места вставлять при нажатии клавиши табуляции
  • expandtab - расширять клавиши табуляции до пробелов

Но если вам приходится много работать с разным количеством вкладок, вы также можете использовать эту функцию и привязка клавиш:

function! Ktabs(tabsize)
    execute "set softtabstop=" . a:tabsize . " tabstop=" . a:tabsize . " expandtab shiftwidth=" . a:tabsize
    "set softtabstop=a:tabsize tabstop=a:tabsize expandtab shiftwidth=a:tabsize
endfunction
noremap <leader><Tab> :call Ktabs(3)<Left>

Если вы редактируете файл, в котором используются символы табуляции и пробелы, вы можете использовать эту команду после установки размера табуляции:

:retab
45
ответ дан 28 November 2019 в 05:01
поделиться
Другие вопросы по тегам:

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