Często używam bloku wizualnego, a następnie wstawiam na wielu liniach, na przykład, komentując dużo kodu. To świetnie nadaje się do wstawiania tekstu w tej samej pozycji na wielu liniach, ale nie mogę wymyślić, jak usunąć ten tekst później za pomocą trybu bloków wizualnych, Backspace, Del i d wszystkie nie działają. Używam MacVim.Vim - Blok wizualny: Usuń zamiast wstawiania
Odpowiedz
Szukacie x:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
Następnie wizualno-blok-select, x
:
root:/root:/bin/bash
daeaemon:/usr/sbin:/bin/sh
bin/bin:/bin/sh
sys/dev:/bin/sh
Używam tego często, z dokładnie tego samego powodu - i komentowania odkomentowanie dużych bloków kodu.
Nie odpowiada to bezpośrednio na pytanie (już to zrobił), ale sugeruję, że istnieją skuteczniejsze sposoby blokowania (nie-) bloków kodu. Mam funkcję CommentToggle, która albo komentuje, albo odkreca bieżący wiersz, w zależności od tego, czy zaczyna się od "comchar".
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."),"[^ ]")
if firstchar == a:comchar
sil exe 'normal ^xx'
else
sil exe 'normal ^i' . a:comchar . ' '
endif
endfunction
Więc dla plików Perla można map:
nnoremap <silent> <leader>c :call CommentToggle('#')<CR>
i naciskając \c (nie-) komentuje trzy linie od pozycji kursora.
Można również napisać mapowania wizualno-mode:
vnoremap <silent> <leader>c :call CommentToggle('#')<CR>
pozwala wybrać obszar wizualnej i naciśnij \c do (nie-) skomentować je wszystkie.
Ta konkretna funkcja działa tylko dla komentarzy jednoliterowych ("#", "%" itp.), Ale można ją rozszerzyć na dłuższe łańcuchy (np. "//"), a nawet bardziej złożone zamienniki. , takie jak komentarze HTML.
Mam nadzieję, że to pomoże.
Dobra wskazówka, dziękuję. –
Zgadzam się na "lepsze metody" Jednak istnieją jeszcze lepsze metody: wtyczki dedykowane do komentowania * przełączanie * -> EnhancedCommentify, NERDCommenter, tComment (nie mam pewności co do ostatniego, używam pierwszego od dekady) –
Odpowiedź Prince Goulash nie działa w liniach z wiodącymi zakładkami.
Zmieniłem go, dodając znak tabulacji do wzoru, chociaż linie tracą wcięcie po komentarzu i odkomentowaniu.
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."), "[^ \t]")
if firstchar == a:comchar
sil exe 'normal ^2x'
else
sil exe 'normal ^i' . a:comchar . ' '
endif
endfunction
lubię bardziej dodając komentarz char do pierwszej pozycji w kolejce, to modyfikacja funkcji księcia gulaszem za załatwia sprawę:
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."), "[^ \t]")
if firstchar == a:comchar
sil exe 'normal ^2x'
else
sil exe 'normal gI' . a:comchar . ' '
endif
endfunction
Zachowaj ostrożność, odpowiadając na odpowiedzi z dalszymi odpowiedziami - gdy ktoś zauważy, zazwyczaj znikną w ciągu kilku minut :) - ale jest to dobra odpowiedź, gdy jest mniej ukierunkowana na Prince Goulash i więcej ukierunkowany na rozwiązywanie problemu Beckera. :) – sarnold
- 1. Grupowanie wybór wizualny VIM
- 2. VIM nawigacja w trybie wstawiania
- 3. Usuń linię/blok z QTextEdit
- 4. vim: cofnąć znak nowej linii w trybie wstawiania?
- 5. Ruby blok ciąg zamiast wykonania
- 6. Vim: Usuń mapowanie utworzone przez vim-plugin
- 7. Sprawdź tryb wizualny
- 8. Usuń otaczające spacje w vim
- 9. Jak uzyskać wizualny dzwonek w vim na Macu?
- 10. Magento - usuń blok przy użyciu aktualizacji XML
- 11. Jak filtrować wybór wizualny?
- 12. Wstecz usuń do postaci w Vim
- 13. Usuń pełne słowa zawierające ciąg w Vim
- 14. Vim - usuń do szukanego ciągu znaków
- 15. wizualna wkładka blok/Dołącz nie działa
- 16. Vim: tryb wstawiania jest bardzo wolny z 400+ liniami
- 17. Różnica między trybem dodawania i wstawiania w Vim
- 18. Wstawianie nowej linii bez wchodzenia w trybie wstawiania, vim
- 19. Czy mogę Vim zignorować blok licencji u góry pliku?
- 20. Vim zbiera polecenie Cscope zamiast ctags?
- 21. Vim jabłkowy zawsze używany zamiast homebrew
- 22. vim poszukiwanie bloku wizualny/wymienić zastąpienie tylko pierwsze wystąpienie na linii
- 23. wizualny edytor WADL
- 24. Graficzny wykres wizualny
- 25. Wizualny C++/CLI (CLR) zerowy wskaźnik
- 26. jak wybrać wszystkie i skopiować w vim?
- 27. Vim wchodzi w tryb wizualny po wybraniu tekstu po aktualizacji El Capitan
- 28. Edytor wizualny/projektant oparty na przeglądarce?
- 29. wyjście QUnit: separacja wizualny modułów
- 30. Znacznik wizualny podczas przenoszenia wierszy w DataGridView
dzięki Ów wielki, czy istnieje sposób, aby utrzymać go w bloku wizualnej tryb i zrobić wiele x? –
@beck: Nie możesz pozostać w trybie wizualnym, o ile wiem. Możesz jednak poprzedzić 'x' liczbą; na przykład '3x' usuwa trzy znaki, które mogą być tym, na co masz ochotę. –
@beck: Możesz również użyć polecenia 'gv', aby ponownie podświetlić ten sam blok. –