2009-04-16 6 views

Odpowiedz

6

Via regex:

:s/\v([^, ]+)(\s*,\s*)([^, ]+)/\3\2\1/ 

Jeśli robisz to często można zrobić mapę z niego, np

:nmap <F5> :s/\v([^, ]+)(\s*,\s*)([^, ]+)/\3\2\1/<CR> 

Ustaw kursor na linii, którą chcesz obrócić, i naciśnij F5.

0

Hum ... Powiedziałbym "tdwxx $ i^[" tp ale to nie jest naprawdę skuteczny i łatwy, wystarczająco szybki, aby wpisać ...

1

mapie kombinację klawiszy, aby wykonać polecenie:

:s/^assert_equal \(.*\), \(.*\)$/assert_equal \2, \1 
4

Ten zamienia słowo kursor znajduje się w następnej - wystarczy nacisnąć klawisz F9 w trybie komend:

:map <F9> "qdiwdwep"qp 
  • „qdiw: umieścić słowo kursor znajduje się na w buforze«q»
  • dw: Usuń wszystkie znaki na początku następnego słowa (ewentualnie przecinek + spacja)
  • e: Idź do końca słowa
  • p: pasta (przecinek + spacja)
  • „JO: Pasta bufor«q»(pierwsze słowo)
1

Zawsze lubiłem wyszukiwanie wyrażenia i zastąpić dla tego typu zadań:

:s/\(\w*\), \(\w*\)/\2, \1/ 

zamieni pierwsze słowo z sekundę na liście oddzielonej przecinkami.

+0

Wystarczy usunąć zakres (%). : s będzie działać na bieżącej linii, chyba że dasz mu zasięg. –

0

czegoś Ta prosta, chciałbym po prostu zrobić trochę makro

qadf ea, ^[pxxq 

wtedy @a dala