Ненужные отступы в bash

Я пытался вставить текст из одного файла в другой в Bash. Я работаю в Putty.

Чтобы быть более понятным, у меня есть файл hotel.txt с некоторыми строками текста, которые с отступом, таким образом, имеют табуляции и пробелы. Когда я вставляю несколько таких строк в другой файл, созданный с помощью vi, они вставлены с дополнительной вкладкой каждый.

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

У кого-нибудь есть решение?

я пробовал :set paste, но не работает со мной, по-видимому.

3 ответа

Решение

Пока в vi, войдите в режим выхода с помощью Esc. Тогда скажи :set paste,

Теперь вы должны быть в состоянии вставить текст без изменений.

Вы можете включить 'paste' от высказывания :set nopaste,

Чтобы сделать изменение постоянным, вы можете добавить :set paste на ваш ${HOME}/.vimrc,

Это не совсем ответ, но вы можете удалить дополнительную вкладку в начале таким образом

:%s/^^I//g

где ^I - символ табуляции, и вы можете ввести его, нажав Cv и затем табуляцию.

(или введите следующую последовательность

gg    "goto top
c-v   "visual selection
S-G   "goto end of file
<<    " indent visual selection one to the left.

)

Это происходит потому, что вы либо не копируете отступ в первой строке, либо потому, что вставляете в уже отступ.

Другие вопросы по тегам