При нажатии клавиши вставьте строку кода в (Mac) VIM, для PDB - PullRequest
11 голосов
/ 01 июля 2011

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

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

import pdb; pdb.set_trace()

Вероятно, не неслыханная строка кода в Python Land

Ответы [ 4 ]

11 голосов
/ 02 июля 2011

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

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

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


Если вы хотите вставить код до текущей строки, замените oO:

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

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

nnoremap <leader><S-p> Oimport pdb; pdb.set_trace()<Esc>
6 голосов
/ 01 июля 2011

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

5 голосов
/ 01 июля 2011

Возможно, это не лучший 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 голосов
/ 01 июля 2011

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

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

import pdb; pdb.set_trace()

"pY

"pp
import pdb; pdb.set_trace()

или используйте сокращения

:ab teh the
...