На клавиатуре вставляем строку кода в (mac) vim, для pdb

Я ищу способ вставить строку кода с нажатием клавиши leader p в Macvim

Я хочу вставить следующую строку кода:

import pdb; pdb.set_trace()

Вероятно, это не неслыханная строка кода на земле python

Ответ 1

Это может быть не самый лучший vimscript каждый, но он ват вы хотите!:-) Просто поместите это в свой .vimrc, и вы можете вызвать его с помощью лидера p.

map <Leader>p :call InsertLine()<CR>

function! InsertLine()
  let trace = expand("import pdb; pdb.set_trace()")
  execute "normal o".trace
endfunction

Ответ 2

Я бы использовал простое отображение (без функций) для лидера p:

nnoremap <leader>p oimport pdb; pdb.set_trace()<Esc>

При нажатии o это входит в режим вставки, вставляет пустую строку после текущей (с o), а затем набирает import pdb; pdb.set_trace(), и, наконец, возвращается в нормальный режим (с Esq).


Если вы хотите вставить код до того, как текущая строка заменит o на O:

nnoremap <leader>p oimport pdb; pdb.set_trace()<Esc>

Или, альтернативно, вы можете установить это для leader shift-p:

nnoremap <leader><S-p> Oimport pdb; pdb.set_trace()<Esc>

Ответ 3

Почему бы не попробовать плагин vimpdb? В качестве альтернативы, если вы ищете функциональность фрагмента, комбинация supertab и snipmate плагины отлично работают.

Ответ 4

Использование регистров?

напишите эту строку где-нибудь и скопируйте ее, чтобы зарегистрировать p, затем используйте "pp для печати

import pdb; pdb.set_trace()

"pY

"pp
import pdb; pdb.set_trace()

или используйте аббревиатуры

:ab teh the