Быстрый отступ нескольких строк в vi

Потребность в возможном желании воспроизводимых результатов, которые могут возникнуть, например, при попытке отладки вашей программы или, конечно, от попыток повторить то, что она делает:

Эти два результата мы «никогда не будем» «воспроизводятся, поскольку я просто попросил что-то« случайное »:

R> sample(LETTERS, 5)
[1] "K" "N" "R" "Z" "G"
R> sample(LETTERS, 5)
[1] "L" "P" "J" "E" "D"

Эти два, однако, идентичны , потому что я установил семя :

R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> 

Во всем этом есть обширная литература; Википедия - хорошее начало. В сущности, эти ГСЧ называются генераторами псевдослучайных чисел, поскольку они на самом деле полностью алгоритмические : при одном и том же семя вы получаете одну и ту же последовательность. И это является признаком , а не ошибкой.

2086
задан ProgramFOX 4 November 2014 в 18:53
поделиться

8 ответов

Используйте команду > . Располагать 5 строк с отступом, 5 > > . Отметить блок строк и расположить его с отступом, V j j > для расположения с отступом 3 строк (только энергия). Для расположения с отступом блока фигурных скобок поместите курсор на одну из фигурных скобок и используйте > % или отовсюду в использовании блока > я B .

, Если блоки копирования you’re текста вокруг и потребности выровнять отступ блока в его новом местоположении, используйте ] p вместо просто p . Это выравнивает вставляемый блок с сопроводительным текстом.

кроме того, shiftwidth установка позволяет Вам управлять сколько пробелов для расположения с отступом.

2463
ответ дан alkino 4 November 2014 в 18:53
поделиться

В дополнение к ответу, уже данному и принятому, также возможно поместить маркер и затем расположить все с отступом от текущего курсора до маркера. Таким образом войдите ma, где Вы хотите вершину своего блока с отступом, курсор вниз, насколько Вам нужно и затем тип >'a (отмечают, что" a" может быть заменен любое допустимое имя маркера). Это иногда легче, чем 5>> или vjjj>.

65
ответ дан Daniel Spiewak 4 November 2014 в 18:53
поделиться
  • 1
    но wouldn' t, что быть применимым для всех указателей? почему только для this? – Naveen 8 December 2009 в 12:11

А также предлагаемые решения, мне нравится делать вещи абзац за один раз с >}

27
ответ дан Paul Tomblin 4 November 2014 в 18:53
поделиться
  • 1
    @Beginner, Ваше сообщение, сказанное только числа, необходимо изменить его на числа и пробелы, если это - требование. Мы являемся очень литеральными здесь. – Chris Haas 26 May 2011 в 13:09

Нажатия клавиш для большего количества визуальных людей:

  1. Вводят Командный режим:

  2. Escape Перемещаются к запуску области для расположения с отступом:
    h j k l

  3. Запускает блок:
    v

  4. Перемещаются до конца области для расположения с отступом:
    h j k l

  5. (дополнительно) Вводит количество уровней отступа, которые Вы хотите
    0.. 9

  6. Выполняют добавление отступа на блоке:
    >

78
ответ дан w00t 4 November 2014 в 18:53
поделиться
  • 1
    Почему мог это препятствовать тому, чтобы я печатал " this" значение? – sharptooth 8 December 2009 в 11:54

Также попробуйте это за C-расположение-с-отступом добавление отступа, сделайте :help = для большего количества информации:

={

, Который автоматически сместит текущий блок кода, в котором Вы находитесь.

Или просто:

==

, чтобы автоматически сместить текущую строку.

107
ответ дан PSL 4 November 2014 в 18:53
поделиться
  • 1
    sharptooth, печатая значение освобожденного указателя инициировал неопределенное поведение, точно так же, как печать освобожденного this. – avakar 8 December 2009 в 12:29

Большой выбор был бы:

gg=G

Это действительно быстро, и все располагается с отступом;-)

121
ответ дан Peter Mortensen 4 November 2014 в 18:53
поделиться
  • 1
    Достаточно ярмарка, если Вы действительно хотите:) Я предполагаю, что FAQ просто является излишне предосторожным. – DanDan 8 December 2009 в 11:58

Когда Вы выбираете блок и используете > для расположения с отступом, он делает отступ, затем возвращается к нормальному режиму. У меня есть это в моем .vimrc файле:

vnoremap < <gv

vnoremap > >gv

Это позволяет Вам расположить свой выбор с отступом столько время, сколько Вы хотите.

27
ответ дан Peter Mortensen 5 November 2014 в 04:53
поделиться
  • 1
    IsNumeric возвращает true для десятичных чисел также, которые не могли бы быть тем, что хочет OP. – Chris Haas 27 May 2011 в 00:05

Сделайте следующее:

$vi .vimrc

И добавьте эту строку:

autocmd FileType cpp setlocal expandtab shiftwidth=4 softtabstop=4 cindent

Это только для файла cpp. Вы можете сделать это для другого типа файла, также просто изменив тип файла ...

14
ответ дан 22 November 2019 в 19:59
поделиться