Как я могу сохранить код форматированным как первоисточник, когда я вставляю их к энергии?

Когда я копирую некоторый код с веб-страниц и вставляю его к VIM, я нахожу, что это становится стилем путаницы как лестничная структура следующим образом

xxxxxx
   xxxxxx
      xxxxxx
         xxxxxxxxxx

Так как это смешивало так регулярно, таким образом, я думаю, возможно, существует что-то не так с моим .vimrc который является как указано ниже:

set number
set nocompatible
set nowritebackup
set noswapfile
syntax on
filetype indent on
filetype plugin on
filetype on
set background=light
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions=T
set fileencodings=utf-8,prc
set ruler
set incsearch
map gs :%s
set t_Co=256
:colorscheme evening
filetype plugin indent on

Обычно я пишу, что Python в VIM.And помогает, ценился бы.

37
задан 12.06.2017, 01:25

3 ответа

Сделайте это прежде:

:set paste

Затем после:

:set nopaste
50
ответ дан 07.12.2019, 08:53

Это - автоматический отступ, который смешивает с Вами.

set autoindent
set smartindent

Попытайтесь отключить их, когда Вы вырезаете и вставляете свой код и затем включаете им снова, когда Вы сделаны.

2
ответ дан 07.12.2019, 08:53

http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste

Переключите автоматический отступ для вставки кода

Фон

При использовании команд Vim для вставки текста, ничто неожиданное не происходит. Проблема только возникает при вставке из другого приложения, и только когда Вы не используете версию GUI Vim. В консольной версии или версии программы Vim, нет никакой стандартной процедуры для вставки текста из другого приложения. Вместо этого терминал может эмулировать вставку путем вставки текста в буфер клавиатуры, таким образом, Vim думает, что текст был введен пользователем. После каждого окончания строки Vim может переместить курсор, таким образом, следующая строка запускается с того же отступа как последнее. Однако это уже изменит добавление отступа во вставленном тексте.

Переключатель вставки

Поместите следующее в свой vimrc (изменитесь на любой ключ, который Вы хотите):

set pastetoggle=<F2>

Вставлять из другого приложения:

  • Запустите режим вставки.
  • Нажмите F2 (переключает опцию 'вставки' на).
  • Используйте свой терминал для вставки текста от буфера обмена.
  • Нажмите F2 (отключает опцию 'вставки').

Затем существующее добавление отступа вставленного текста будет сохранено.

Вы не должны запускать режим вставки сначала, но если Вы будете в нормальном режиме и будете иметь отображение для F2, то то отображение будет применяться, и функция 'pastetoggle' не будет работать.

Некоторые люди как визуальная обратная связь, показанная в строке состояния следующей альтернативой для Вашего vimrc:

nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode

Первая строка устанавливает отображение так, чтобы нажатие F2 в нормальном режиме инвертировало опцию 'вставки' и затем показало значение той опции. Вторая строка позволяет Вам нажимать F2 когда в режиме вставки, переключать 'вставку' на и прочь. Третья строка позволяет отобразиться, включена ли 'вставка' в режиме вставки.

16
ответ дан 07.12.2019, 08:53

Теги

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