Швидко введіть кілька рядків у vi


2158

Це має бути тривіально, і це може бути навіть у допомозі, але я не можу зрозуміти, як орієнтуватися в ньому. Як швидко відтворити кілька рядків у vi?

Відповіді:


2551

Використовуйте >команду. Щоб зробити відступ п'ять рядків, 5>>. Щоб позначити блок рядків і відступити його, Vjj>відступіть три рядки (лише Vim). Для відступу блоку фігурних дужок поставте курсор на один із фігурних дужок та використовуйте >%або з будь-якого місця всередині блоку >iB.

Якщо ви копіюєте текстові блоки навколо та вам потрібно вирівняти відступ блоку в новому місці, використовуйте ]pзамість просто p. Це вирівнює вкладений блок з оточуючим текстом.

Також shiftwidthналаштування дозволяє контролювати кількість пробілів для відступу.


77
Я використовую> i} (внутрішній відступ блоку). Працює в vim. Не впевнений, що це працює in vi.
Р. Мартіньо Фернандес

11
Моя проблема (в gVim) полягає в тому, що команда> відступає набагато більше 2 пробілів (я хочу всього два пробіли, але> відступ чимось на зразок 5 пробілів)
Kamran Bigdely

28
@Kamran: Перегляньте shiftwidthналаштування способу змінити це.
Грег Хьюгілл

4
@MattStevens: Розширену дискусію про це явище можна знайти тут: meta.stackexchange.com/questions/9731/…
Грег Хьюгілл

5
Я часто відкладаю візуальні блоки кілька разів поспіль, як-от виправлення деяких тегів, вставлених у XML-файл. Замість того, щоб повторно вибирати блок у візуальному режимі кожен раз, можна використовувати 'gv' для повторного використання останнього візуального блоку. Довідка superuser.com/questions/220666/…
Девід Манн

958

Ця відповідь узагальнює інші відповіді та коментарі до цього питання, і вона додає додаткову інформацію на основі документації Vim та вікі Vim . Для стислості ця відповідь не розрізняє Vi-конкретні команди.

У наведених нижче командах "повторне відступ" означає "рядки відступу відповідно до ваших налаштувань відступу ". shiftwidthє основною змінною, яка контролює відступ.

Загальні команди

>>   Indent line by shiftwidth spaces
<<   De-indent line by shiftwidth spaces
5>>  Indent 5 lines
5==  Re-indent 5 lines

>%   Increase indent of a braced or bracketed block (place cursor on brace first)
=%   Reindent a braced or bracketed block (cursor on brace)
<%   Decrease indent of a braced or bracketed block (cursor on brace)
]p   Paste text, aligning indentation with surroundings

=i{  Re-indent the 'inner block', i.e. the contents of the block
=a{  Re-indent 'a block', i.e. block and containing braces
=2a{ Re-indent '2 blocks', i.e. this block and containing block

>i{  Increase inner block indent
<i{  Decrease inner block indent

Ви можете замінити {з }або B, наприклад , =iBє допустимим командний блок відступу. Погляньте на "Вступ блоку коду", щоб побачити приклад, щоб спробувати ці команди.

Також пам’ятайте про це

.    Repeat last command

, тому команди відступу можна легко та зручно повторити.

Повторне відступ повних файлів

Ще одна поширена ситуація - вимагає виправлення відступів у вихідному файлі:

gg=G  Re-indent entire buffer

Ви можете поширити цю ідею на кілька файлів:

" Re-indent all your C source code:
:args *.c
:argdo normal gg=G
:wall

Або кілька буферів:

" Re-indent all open buffers:
:bufdo normal gg=G:wall

У візуальному режимі

Vjj> Visually mark and then indent three lines

У режимі вставки

Ці команди застосовуються до поточного рядка:

CTRL-t   insert indent at start of line
CTRL-d   remove indent at start of line
0 CTRL-d remove all indentation from line

Ex команди

Вони корисні, коли потрібно відступити певний діапазон рядків, не переміщуючи курсор.

:< and :> Given a range, apply indentation e.g.
:4,8>   indent lines 4 to 8, inclusive

Відступ за допомогою маркерів

Інший підхід - через маркери :

ma     Mark top of block to indent as marker 'a'

... перемістити курсор до кінця місця

>'a    Indent from marker 'a' to current location

Змінні, що регулюють відступ

Ви можете встановити їх у файлі .vimrc .

set expandtab       "Use softtabstop spaces instead of tab characters for indentation
set shiftwidth=4    "Indent by 4 spaces when using >>, <<, == etc.
set softtabstop=4   "Indent by 4 spaces when pressing <TAB>

set autoindent      "Keep indentation from previous line
set smartindent     "Automatically inserts indentation in some cases
set cindent         "Like smartindent, but stricter and more customisable

Vim має інтелектуальне відступ на основі файлів. Спробуйте додати це до свого .vimrc:

if has ("autocmd")
    " File type detection. Indent based on filetype. Recommended.
    filetype plugin indent on
endif

Список літератури


13
І ця відповідь, і одна над нею була чудовою. Але я поставив це +1, оскільки це нагадувало мені оператора "крапка", який повторює останню команду. Це надзвичайно корисно, коли потрібно відступити цілий блок на декілька просторів зміни (або відступи), не потребуючи натискання >}. Дякую довго
Amit

1
5 >> Відступ 5 рядків: Ця команда відступає п’ятому рядку, а не 5 рядків. Чи це може бути пов’язано з моїми налаштуваннями VIM, чи ваше формулювання неправильне?
Wipqozn

1
@Wipqozn - Це дивно. Це безумовно відступає наступні п'ять рядків для мене, протестовані на Vim 7.2.330.
ire_and_curses

8
> 42gg ​​Відступ, звідки ви на лінії 42.
Стів

Чудовий підсумок! Також зауважте, що "відступ всередині блоку" та "відступ всіх блоків" (<i {> a {тощо) також працює з дужками та дужками:> a (<i] тощо) (і поки я в ньому, в крім <> 's, вони також працюють з d, c, y тощо)
aqn

123

Великим вибором буде:

gg=G

Це дуже швидко, і все стає відступом ;-)


1
У мене XML-файл і ввімкнено підсвічування синтаксису. Введення тексту gg=Gпроставляє кожен рядок, починаючи з позиції 1. Усі білі проміжки були видалені. Чи є ще щось специфічне для XML?
asgs

2
Я думаю, що set cindentслід мати vimrc або слід запустити :set cindentперед виконанням цієї команди
Амануель Нега,

3
Я думаю, що в першу чергу потрібно встановити патент. і @asgs я думаю, що це працює лише для мов програмування cstyle.
Амануїл Нега

110

Крім того, спробуйте це для C-відступи відступу. Зробіть :help =для отримання додаткової інформації:

={

Це автоматично відступить поточний блок коду, в якому ви знаходитесь.

Або просто:

==

для автоматичного відступу поточного рядка.


2
не працює для мене, просто скидає курсор на рядок над вступним дужкою "поточного блоку коду, в якому я".
підкреслюйте_d

79

Ключові натискання для більш візуальних людей:

  1. Введіть командний режим:
    Escape

  2. Перемістіться до початку області для відступу:
    hjkl

  3. Почати блок:
    v

  4. Перемістіть до кінця області для відступу:
    hjkl

  5. (Необов’язково) Введіть потрібну кількість відступів
    0..9

  6. Виконай відступ на блоці:
    >


2
Це чудово, але він використовує пробіли, а не вкладки. Будь-який можливий спосіб виправити це?
Шейн Реустл

12
Якщо в ньому використовується пробіли замість вкладок, то, ймовірно, ви маєте відступ для використання пробілів. =).
Кент Фредрік

4
Коли параметр 'expandtab' вимкнено (це за замовчуванням), Vim використовує <Tab> s якомога більше, щоб зробити відступ. (: допомога:>)
Кент Фредрік

1
Єдине налаштування vim, пов’язане з вкладкою / пробілом, яке я змінив, це: встановити tabstop = 3. Це фактично вставляє це щоразу, коли я використовую >>: "<tab> <space> <space>". Те саме з відступом блоку. Будь-які ідеї?
Шейн Рейстл

3
Три налаштування, які ви хочете подивитися на "пробіли проти вкладок", - це 1. табстоп 2. зрушення та зрушення 3. розширення. Напевно у вас є "shiftwidth = 5 noexpandtab", тому "вкладка" - це 3 пробіли, а рівень відступу - пробіли "5", тож вона складає 5 з 1 вкладкою та 2 пробілами.
Кент Фредрік

66

Майстер всіх команд - це
gg=G

Це відступає весь файл!

Нижче наведено кілька простих і елегантних команд, які швидко використовуються для відступу рядків у Vim або gVim.

Для відступу поточного рядка
==

Для відступу всіх рядків нижче поточного рядка

=G

Для відступу nрядків нижче поточного рядка

n==

Наприклад, відступити 4 рядки нижче поточного рядка

4==

Для відступу блоку коду перейдіть до одного з дужок і скористайтесь командою

=%

Це найпростіші, але потужні команди для відступу декількох рядків.


3
Це тільки в vim, ні vi.
rojomoke

3
Не на моїх полях Solaris або AIX це не так. Ключ рівняння завжди був одним із моїх стандартних спеціальних макро-призначень. Ви впевнені, що не дивитесь на vimте, з чим пов'язано vi?
rojomoke

3
Так, в Linux, vi майже завжди є посиланням на vim. Спробуйте запустити команду: ve всередині vi.
rojomoke

4
Я люблю такі відповіді: чіткі, точні та лаконічні. Працював для мене в Дебіан Джессі. Дякую, @SJain
digitai

1
Оскільки я використовую vim, а не vi, досить відповідна ця відповідь тут. Дякую.
Дан Ніссенбаум

66

Окрім вже наданої та прийнятої відповіді, також можна розмістити маркер, а потім відкласти все, від поточного курсору до маркера.

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


1
Це дійсно корисно. Мені доведеться шукати, що з цим все працює. Я знаю d'a та ya, що ще?
user606723

2
Це дуже корисно, оскільки дозволяє уникнути необхідності підраховувати кількість рядків, які ви хочете відступити.
зиггі

29

Перейдіть до початку тексту

  • натисніть vдля візуального режиму.
  • використовувати up/ downстрілку для виділення тексту.
  • натисніть =для відступу всіх рядків, які ви виділили.

28

Як і пропоновані рішення, мені подобається одночасно робити абзаци >}


2
Так, і саме тому одним з моїх великих пір є білі пробіли на інакше порожньому рядку: вони псують уявлення Віма про "абзац".
aqn

28

Коли ви вибираєте блок і використовуєте >для відступу, відступи потім повертаються до звичайного режиму. Я маю це у своєму .vimrc файлі:

vnoremap < <gv

vnoremap > >gv

Це дозволяє відступити ваш вибір стільки разів, скільки вам потрібно.


17
Щоб відбити виділення кілька разів, ви можете просто натиснути. повторити попередню команду.
sundar

2
Проблема з. в цій ситуації є те, що вам потрібно рухати пальцями. За допомогою рішення @ mike (той же, який я використовую) у вас уже є пальці по відступному ключу, і ви можете просто тримати його, щоб продовжувати відступ, а не перемикатися та робити щось інше. Використання періоду займає більше часу, оскільки вам потрібно рухати руками, і це потребує більше роздумів, оскільки це друга, інша операція.
masukomi

21

Припустимо, ви використовуєте 2 пробіли для відступу коду. Тип:

:set shiftwidth=2
  • Введіть v(для переходу в режим редагування візуального блоку)
  • Переміщення курсору з допомогою клавіш зі стрілками (або h/ j/ k/ l) , щоб виділити рядки , які ви хочете , щоб або видалення відступу.

Тоді:

  • Введіть >відступ один раз (2 пробіли).
  • Введіть 2>відступ двічі (4 пробіли).
  • Введіть 3>до відступу тричі (6 пробілів).
  • ...
  • Введіть <один раз для скасування (2 пробіли).
  • Введіть, 2<щоб скасувати два рази (4 пробіли).
  • Введіть 3<в тричі (6 пробілів).
  • ...

Ви отримуєте ідею.

( Порожні рядки не отримають відступів, що, на мою думку, є приємним. )


Я знайшов відповідь у документації (g) vim для відступів блоків:

:help visual-block
/indent

Якщо ви хочете надати команду підрахунку, зробіть це безпосередньо перед тим, як ввести символ оператора: "v {move-around} 3>" (перемістіть рядки 3 відступи праворуч).


18

Краса інтерфейсу Vim полягає в його консистенції. Команди редагування складаються з команди та переміщення курсору. Рухи курсору завжди однакові:

  • Hвгорі екрана, Lвниз, Mв середину
  • nG переходити до рядка n , Gокремо внизу файлу, ggвгору
  • nперейти до наступного пошукового матчу, Nдо попереднього
  • } до кінця абзацу
  • % до наступної відповідної дужки, або в дужках, або в тезі
  • enter до наступного рядка
  • 'xщоб позначити х, де х - буква чи інша '.
  • багато інших, в тому числі wі Wза слово, $або 0на кінчики лінії і т.д., які не застосовуються тут , бо не лінії руху.

Отже, щоб використовувати vim, ви повинні навчитися переміщувати курсор і запам’ятовувати репертуар команд, як, наприклад, >відступити (і <«перехитрити»).

Таким чином, для відступу рядки з позиції курсора в верхній частині екрану ви робите >H, >Gщоб зробити відступ в нижній частині файлу.

Якщо замість того, щоб вводити текст >H, ви dHвидаляєте той самий блок рядків cHдля його заміни тощо.

Деякі рухи курсору краще підходять до певних команд. Зокрема, %команда зручна для відступу цілого блоку HTML або XML. Якщо у файлі є підкреслений синтаксис ( :syn on), то встановлення курсору в тексті тегу (наприклад, у "i" <div> і введення >%буде відступати до тега закриття </div>).

Ось так працює Vim: треба пам’ятати лише рухи курсору та команди та способи їх змішування. Тож моя відповідь на це питання полягала б у тому, щоб "перейти до одного кінця блоку рядків, на який потрібно відступити, а потім введіть >команду та рух до іншого кінця блоку", якщо відступ трактується як зміщення рядків, =якщо відступ інтерпретується як у симпатичному друку.


2
Я б сказав, що vi / vim здебільшого послідовний. Наприклад, D не поводиться так само, як S і Y! :)
aqn

14

Зробити це:

$vi .vimrc

І додайте цей рядок:

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

Це лише для файлу cpp. Ви можете зробити це для іншого типу файлу, також просто змінивши тип файлу ...


13

За допомогою norm iкоманди можна вставити даний текст на початку рядка. Щоб вставити 10 пробілів перед рядками 2-10:

:2,10norm 10i 

Пам'ятайте, що в кінці команди повинен бути символ пробілу - це буде символ, який ми хочемо вставити. Ми також можемо відступити рядок з будь-яким іншим текстом, наприклад, відступити кожен рядок у файлі з п'ятьма символами підкреслення:

:%norm 5i_

Або щось ще більш фантазійне:

:%norm 2i[ ]

Більш практичним прикладом є коментування коду Bash / Python / тощо з символом #:

:1,20norm i#

Для повторного відступу використовувати xзамість i. Наприклад, щоб видалити перші 5 символів з кожного рядка:

:%norm 5x

1
це починається з лівого боку файлу ... не поточне положення блоку
Eliethesaiyan

12

Швидкий спосіб зробити це, VISUAL MODEвикористовуючи той самий процес, що і коментування блоку коду.

Це корисно, якщо ви хочете не змінювати свої директиви shiftwidthабо використовувати якісь setдирективи і є досить гнучкими для роботи з TABS або SPACES або будь-яким іншим символом.

  1. Позиціонуйте курсор на початку на блоці
  2. v перейти на -- VISUAL MODE --
  3. Виберіть текст для відступу
  4. Введіть :для переходу на підказку
  5. Заміна 3 провідними пробілами:

    :'<,'>s/^/ /g

  6. Або заміна провідних вкладок:

    :'<,'>s/^/\t/g

  7. Коротке пояснення:

    '<,'> - В межах візуально вибраного діапазону

    s/^/ /g - Вставте 3 пробіли на початку кожного рядка в межах всього діапазону

    (або)

    s/^/\t/g- Вставити Tabна початку кожного рядка в межах всього діапазону


12

>}або >{відступ від поточного рядка до наступного абзацу

<}або <{такий же відступ


11

Мені подобається маркувати текст для відступу:

  1. перейдіть до початку рядка тексту, а потім введіть ma( aце мітка від 'm'ark: це може бути будь-яка літера)
  2. перейти до кінцевого рядка тексту та набрати mz(знову ж, zбудь-яка літера)
  3. :'a,'z>або :'a,'z<відступ чи застарілий (це слово?)
  4. Вуаля! Текст переміщено (порожні рядки залишаються порожніми без пробілів)

PS: ви можете використовувати :'a,'zтехніку для позначення діапазону для будь-якої операції (d, y, s /// тощо), де ви можете використовувати лінії, цифри або %.


10

:help left

У ex modeви можете використовувати :leftабо , :leщоб вирівняти рядки зазначеної суми. Зокрема, :leftбуде вирівнювати ліві лінії в діапазоні [діапазон]. Він встановлює відступ у рядках на [відступ] (за замовчуванням 0).

:%le3або :%le 3 або :%left3або :%left 3вирівняє весь файл, додавши три пробіли.

:5,7 le 3 вирівняють лінії 5 по 7, додавши їх до трьох пробілів.

:leбез будь-якого значення або :le 0залишиться вирівнювати з прокладкою 0.

Це працює у Vim та gVim.


1
Дивовижний, саме те, що я шукав (спосіб вставити певну кількість пробілів - 4 пробіли для розмітки коду - щоб змінити мій звичайний відступ). У моєму випадку я хотів відкласти певну кількість рядків у візуальному режимі, тому shift-v виділити лінії, а потім :'<,'>le4вставити пробіли. Дякую!
Subfuzion

9

Для мене рішення MacVim (Visual) було, виберіть мишкою та натисніть ">", але після введення наступних рядків у "~ / .vimrc", оскільки мені подобаються пробіли замість вкладок:

set expandtab
set tabstop=2
set shiftwidth=2

Також корисно мати можливість викликати MacVim з командного рядка (Terminal.app), тому оскільки у мене є наступний довідковий каталог "~ / bin", де я розміщую скрипт під назвою "macvim":

#!/usr/bin/env bash
/usr/bin/open -a /Applications/MacPorts/MacVim.app $@

І звичайно в "~ / .bashrc":

export PATH=$PATH:$HOME/bin

MacPorts багато спілкується з "~ / .profile", тому змінна середовища PATH може отримати досить довгий.


9

5== відступить п'ять рядків від поточного положення курсору.

Таким чином, ви можете ввести будь-яке число раніше ==. Він відступить кількість рядків. Це в командному режимі.

gg=G буде відступати весь файл зверху вниз.


9

Я не знайшов методу, який використовую в коментарях, тому поділюсь ним (думаю, тільки Vim):

  1. Esc для переходу в режим команд
  2. Перейдіть до першого символу останнього рядка, який потрібно відступити
  3. Ctrl+ Vдля запуску вибору блоку
  4. Перейдіть до першого символу першого рядка, який потрібно відступити
  5. Shift+ Iдля входу в режим спеціального вставки
  6. Введіть стільки простору / вкладок, скільки потрібно вдати відступ (наприклад, дві
  7. Натискання Escта пробіли з’являться у всіх рядках

Це корисно, коли ви не хочете змінювати параметри відступу / вкладки vimrcабо пам'ятати їх, щоб змінити їх під час редагування.

Для відмови я використовую той самий Ctrl+ Vблок select, щоб вибрати пробіли та видалити його D.


9

Я не знаю, чому так важко знайти просту відповідь, як ця ...

Мені самому довелося багато боротися, щоб це знати. Це дуже просто:

  • Відредагуйте свій .vimrcфайл під домашнім каталогом.
  • Додайте цей рядок

    set cindent
    

    у вашому файлі, де ви хочете правильно зробити відступ.

  • У звичайному / командному режимі

    10==   (This will indent 10 lines from the current cursor location)
    gg=G   (Complete file will be properly indented)
    

8
:line_num_start,line_num_end>

Наприклад,

14,21> shifts line number 14 to 21 to one tab

Збільшити символ ">" для додаткових вкладок.

Наприклад,

14,21>>> for three tabs

1
Способів вирішити це, очевидно, дуже багато, але це найпростіше здійснити, так як номери рядків показуються за замовчуванням у vim, і це не вимагає математики.
HoldOffHunger

@HoldOffHunger Номери рядків не відображаються за замовчуванням. Потрібно використовувати :set numberдля перемикання номерів рядків (вони за замовчуванням вимкнено ) або ввести set numbervimrc.
DryLabRebel

7

Багато використовуючи Python, я вважаю, що мені потрібно часто змінювати блоки на більш ніж один відступ. Це можна зробити за допомогою будь-якого з методів вибору блоку, а потім просто введіть кількість відступів, які ви хочете перейти безпосередньо перед>

Наприклад, V5j3>три рази буде відступати п'ять рядків - це 12 пробілів, якщо ви будете використовувати чотири пробіли для відступів.



6

Як негайно відмітити виділений код у vi через ряд пробілів:

Варіант 1: Введіть блок коду в vi на три пробіли в режимі Visual Block:

  1. Виберіть блок коду, який потрібно відступити. Зробіть це, використовуючи Ctrl+Vв звичайному режимі та стрілку вниз, щоб вибрати текст. Під час його вибору введіть :команду для блоку вибраного тексту.

  2. У командному рядку з’явиться таке: :'<,'>

  3. Щоб встановити відступ на три пробіли, введіть le 3та натисніть клавішу Enter. Ось що з’являється::'<,'>le 3

  4. Вибраний текст одразу відступає на три пробіли.

Варіант 2: Введіть блок коду в vi на три пробіли в режимі Visual Line:

  1. Відкрийте свій файл in vi.
  2. Наведіть курсор на якийсь код
  3. Будьте в звичайному режимі і натисніть наступні клавіші:

    Vjjjj:le 3
    

    Тлумачення того, що ви зробили:

    V означає почати вибір тексту.

    jjjj стрілки вниз чотири рядки, виділяючи чотири рядки.

    : повідомляє vi, що ви введете інструкцію для виділеного тексту.

    le 3 означає відступ тексту, виділеного трьома рядками.

    Вибраний код негайно збільшується або зменшується до відступу на три пробіли.

Варіант 3: використовувати режим візуального блоку та спеціальний режим вставки для збільшення відступу:

  1. Відкрийте свій файл in vi.
  2. Наведіть курсор на якийсь код
  3. Будьте в звичайному режимі, натисніть наступні клавіші:

    Ctrl+V

    jjjj
    

    (натисніть пробіл п'ять разів)

    Esc Shift+i

    Весь виділений текст з відступом додається ще п’ять пробілів.


6

Я використовую візуальний вибір блочного режиму:

  • Перейдіть на передню частину блоку, щоб рухатися (вгорі або внизу).
  • Натисніть Ctrl+, Vщоб увійти в режим візуального блоку.
  • Перейдіть, щоб вибрати стовпець перед рядками.
  • Натисніть I( Shift+ I), щоб увійти в режим вставки.
  • Введіть пробіли.
  • Натисніть Esc. Усі лінії змістяться.

Це не одноосібник. Це працює:

  • В середині рядків.
  • Щоб вставити будь-який рядок у всі рядки
  • Щоб змінити стовпець (використовуйте cзамість I).
  • вибивати, видаляти, замінювати тощо ...

Це громіздко, але це шлях, якщо ви будете форматувати поза основним VIM (наприклад, використовуючи vim-prettierзамість двигуна відступів за замовчуванням). В >іншому випадку використання по-справжньому зобразить форматування, зроблене Prettier.
олігофрен

Смішно, я вважаю це що завгодно, але громіздким. Це не універсал! Вивчення цього методу має багато можливостей, крім відступу.
sqqqrly

Я вважаю, що це краще, ніж прийнята відповідь, оскільки я бачу, що відбувається, рядки, які я вибираю, і дії, які я роблю, а не просто набираю якусь заклик vim.
користувач4052054

5
  • Для блоку коду {}: =+%

  • Для вибраного рядка: Shift+ vвиберіть клавіші зі стрілками вгору / вниз та натисніть =.

  • Для всього файлу: gg+ =+G

Примітка: 'gg' означає перехід до рядка 1, '=' є командою відступу, а 'G' переміщує курсор до кінця файлу .


4

Для відступу всього файлу на чотири:

esc 4G=G

3
...що? 'відступ на 4 пробіли'? Ні, це переходить до рядка 4, а потім відступає все, починаючи з кінця файлу, використовуючи вибраний в даний час режим відступу (якщо такий є).
підкреслюйте_d

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.