2012-02-28 31 views
10

Używam niesamowitej wtyczki https://github.com/tpope/vim-surround do otaczania wyrazów za pomocą nawiasów, na przykład często używam: viws<space><space> do otaczania wyrazów spacjami.Usuń otaczające spacje w vim

To, czego mi brakuje, jest przeciwieństwem tego, czyli usuwaniem otaczających przestrzeni wokół słowa.

Najczęstszym zastosowaniem dla mnie są argumenty funkcyjne, takie jak foo (bar) vs foo (bar) w zależności od stylu kodu.

Czy ktoś wie, jak to zrobić?

+0

Czy '' DS działa? README dostarcza 'ds" 'jako mechanizm do usuwania separatorów' '' na przykładzie. – sarnold

+0

Niestety nie. Dobra obserwacja. –

+1

Uważam za zabawne stwierdzenie, że polecenie 'viws ' jest prostszym rozwiązaniem niż wszystkie alternatywy, w tym używanie klawiszy strzałek i backspace! – puk

Odpowiedz

11

Uwaga: To rozwiązanie wymaga wtyczki surround wymienionej w pytaniu.

Dla danej sytuacji można wykonać następujące czynności:

cs() 

Zmienia foo(bar) do foo(bar), jednak nie jest to ogólnie rozwiązanie problemu.

+1

rodzaj eleganckiego .. dziwnego ale eleganckiego :) –

+0

co to ma zrobić? Nic mi to nie robi – puk

+1

Jeśli nie masz wtyczki surround zaznaczonej w OP, to nie zrobi tego, co jest oczekiwane.W przypadku surround, 'csXY' mówi, że" zmienia otaczające znaki X z otaczającymi je znakami Y ",' ("jest zdefiniowane jako" otaczające nawiasy z obszarem wypełnienia ", a') 'jest zdefiniowane jako" otaczające nawiasy bez dopełnienia " przestrzeń". –

3

Może po prostu BXElx w trybie normalnym.

+0

lub 'BXf x' – puk

4

Często też odwlekam w poszukiwaniu wtyczek vim, kiedy mogę po prostu zdefiniować mapowanie dla tego.

nnoremap <leader>dd F<space>xf<space>x 

EDIT więcej informacji

  • <leader> wspólny klucz dla zdefiniowanych przez użytkownika odwzorowań (, jest dobry)

  • dd kombinacja użyć (każda inna pamięciowy jednego wystarczą)

  • F<space>x wyszukiwania wstecz dla przestrzeni, a następnie usunąć go

  • f<space>x wyszukiwania do przodu do przestrzeni, a następnie usunąć go

+0

haha ​​... taa ... :) –

1

W rzeczywistości, idealnym rozwiązaniem dla mnie jest odwzorowaniem dostarczone przez @puk, ale przy użyciu klucze @sarnold oczekiwane w pierwszej kolejności (czego można oczekiwać od wtyczki surround, jeśli to zaimplementowało).

to:

nnoremap ds<space> F<space>xf<space>x