2013-06-13 8 views
10

Często wstawiam binding.pry do moich plików ruby ​​podczas ich debugowania. Kiedy używam Vima, chciałbym go zautomatyzować, aby za każdym razem nie przepisywać go ponownie. Jak mogłem to zrobić?Wstawianie wstępnie zdefiniowanego tekstu na skrócie klawiaturowym

Dokładna sekwencja Chciałbym mapie jest:

  1. Włóż nową linię.
  2. Wstaw binding.pry do nowo utworzonej linii.
  3. Powróć do trybu normalnego.

EDIT:binding.pry jest tekst Chcę wklej, a nie plik.

przed włożeniem:

a = 1 
b = 2 

Po wkładki:

a = 1 
binding.pry 
b = 2 
+0

Czy chodziło Ci wstawić tekst „binding.pry” lub wstawić zawartość pliku 'binding.pry'? – doubleDown

+0

Jak napisałem w komentarzu do odpowiedzi: jest to tekst "binding.pry", nie zawartość pliku. – mrzasa

Odpowiedz

14

nagrać makro (niesprawdzone)

qq    " record macro to register q 
o    " insert empty line below cursor 
esc    " exit insert-mode 
:r /path/to/binding.pry " insert content of file 
esc    " cmd-mode 
q    " end recording 

Aby uruchomić makro, wykonaj

@q 

lub dodaj je do pliku .vimrc

aktualizacji

Aby wstawić ciąg binding.pry mapowanie staje:

map ,p obinding.pry<ESC> 
+0

Dzięki! Jeden komentarz: 'binding.pry' nie jest plikiem, ale ciągiem, który chciałbym wkleić. Powinno być łatwiej, mam rację? – mrzasa

+1

@mrzasa, po prostu pomiń kroki 'esc' i': r ... 'i po prostu zamień na' binding.pry'. – doubleDown

+0

@FredrikPihl Jeśli chcę dodać 'obinding.pry'? – alhelal

2

podstawie Fredrik's idea można definiować i zapisywać makra w swojej .vimrc, powiedzmy g:

let @g = "Obinding.pry^[" 

Należy pamiętać, że do type the escape character trafisz CTRL-V następnie ESC.

Następnie można wykonać @g, aby wykonać makro.


W ogóle, jeśli chcesz zapisać makro, jeden łatwy sposób byłoby nagrać makro, powiedzmy w rejestrze q, a następnie zrobić "qp (gdzie q jest nazwa makra), aby wkleić makro. Następnie otoczyć ją

let @x = "..." 

gdzie x jest nazwa makra chcesz go mieć zawsze i umieścić go w pliku .vimrc.

+1

Aby uzyskać więcej informacji, zobacz [Zapisywanie makr vima] (http://stackoverflow.com/questions/2024443/saving-vim-macros) – timss

7

Najprostsza jest skrót który jest uruchamiany w trybie Insert:

:ia debug <CR>binding.pry 

Teraz, po wpisaniu debug tekst binding.pry jest włożona w nowej linii.

+1

Cóż, musisz przejść do trybu wstawiania i wpisać kilka słów, więc nie do końca najłatwiejszy. – doubleDown

0

Innym mapowanie że zrobi to:

nnoremap <silent> gb :let a='binding.pry'\|put=a<cr> 
Powiązane problemy