jEdit obsługuje edycję blokową, ale Emacs i Vim wydają się mieć poważne problemy z użytecznością tego samego tematu. Gdyby ktoś mógł tutaj wpisać niewiadome, o wiele bardziej znośne byłoby użycie dowolnego edytora:
- Rzeczywisty wybór prostokątny : gdzie wybór na ekranie jest prostokątem, a nie wyborem liniowym, który jest następnie używany do obliczania regionu, do którego Emacs wydaje się ograniczony.
- jEdycja: przytrzymaj Ctrli wybierz.
- Vim: kliknij Ctrl-vi wybierz.
- Emacs: Nieznany ; wygląda na to, że potrzebna jest wtyczka 400+ linii .
- Edycja prostokątna na żywo : zobacz, jak będzie wyglądał wynik na wszystkich liniach podczas edycji po zaznaczeniu bloku.
- jEdit: Po prostu zacznij pisać, a zobaczysz wynik końcowy.
- Vim: Kliknij Shift-ii wpisz. Wyświetli wynik końcowy tylko w pierwszym wierszu, dopóki nie naciśniesz, Escaby wyjść z trybu wstawiania. Nie wiadomo, czy jest jakiś sposób, aby natychmiast zobaczyć wynik we wszystkich liniach.
- Emacs: Nieznany ; wygląda na to, że jedynym sposobem jest C-x r tustawienie tekstu do wypełnienia po naciśnięciu Ret.
- Początek i koniec zaznaczenia w pozycjach poza tekstem : Na przykład chciałbym usunąć N pierwszych znaków każdego wiersza, ale pierwszy i ostatni wiersz zawierają mniej niż N znaków.
- jEdit: Nie ma problemu, wybory bloków można rozpocząć poza tekstem.
- Vim:
:set virtualedit=block
. - Emacs: Może być to możliwe przy pomocy
artist-mode
i / lubpicture-mode
.
- Wklej blok w wierszu : wklej skopiowany blok tak, jakbyś wklejał wiele wierszy, np. Wciśnij tekst już tam w dół , a nie w prawo.
- jEdit: domyślnie. Aby wkleić blok jako blok, musisz najpierw wybrać inny blok.
- Vim: OEscVp.
- Emacs: Nieznany .
Ogólne funkcje wyboru bloku Emacsa można znaleźć we cua-mode
wtyczce .
Odpowiedzi:
Mogę odpowiadać za Vima, ale nie za Emacsa.
Rozpocznij i zakończ zaznaczenie w pozycjach poza tekstem:
:set virtualedit=block
umożliwi zachowanie, które chcesz. Możesz upuścić początkowy dwukropek i dodać go do .vimrc, jeśli chcesz. Aby uzyskać więcej informacji,:help 'virtualedit'
z poziomu Vima.Wklej blok w wierszu:
Jeśli po prostu naciśniesz pw trybie poleceń, Vim wstawi blok, popychając znaki w prawo w każdej linii. Jeśli wybierzesz inny blok i uderzysz p, Vim zastąpi ten blok wklejonym blokiem.
Możesz wkleić blok „linewise” za pomocą sekwencji klawiszy trybu poleceń OEscVp. To wstawia linię powyżej bieżącej linii (
O Esc
), wybiera ją linewise (V
), a następnie wkleja nad nią (p
). Można to skrócić do (na przykład) ypza pomocą mapowania, takiego jak:nmap yp O<Esc>Vp
- typ, który dosłownie; użyj pięciu kombinacji klawiszy<Esc>
zamiast naciskać klawisz Escape.źródło
virtualedit
; muszę tego spróbować. Informacje na temat wklejania wbudowanego można znaleźć w zaktualizowanym pytaniu opisującym oczekiwaną funkcjonalność.Emacs: rozpocznij zaznaczenie w pierwszym wierszu i po prostu dodaj brakującą liczbę znaków (np. Spacje) do ostatniego wiersza, a następnie użyj prostokąta
Ewentualnie zobacz
artist-mode
lub,picture-mode
które pozwalają ci swobodnie poruszać się w oknie, niezależnie od długości linii.Emacs: Najpierw zapisz blok albo zabijając prostokąt lub zapisując go do rejestru, a następnie przejdź do punktu wstawiania, użyj delete-prostokąt, a następnie wstaw zapisany prostokąt.
W przypadku Emacsa, dlaczego jest to problem? Wtyczkę można skompilować, a filozofią emacsa jest to, że nie wkładasz wszystkiego do rdzenia, ale używasz wtyczek do rozszerzenia edytora.
źródło
Istnieje „tryb cua”, który jest dostarczany z Emacsen 22.1 i nowszymi, lub kliknij link, aby pobrać wcześniejsze wersje Emacsa. Jest to krótki film , który wprowadza funkcjonalność.
W przypadku ogólnych poleceń prostokąta spróbuj przeczytać instrukcję , która zapewnia łatwe wprowadzenie.
źródło
cua-mode
wygląda dobrze! +1 .. Nie mogłem znaleźć filmu, o którym wspominałeś, zobacz link Toma w komentarzach bezpośrednio pod pytaniem, aby uzyskać link do (innego?)W vim typowym sposobem na usunięcie pierwszych n znaków jest zrobienie czegoś takiego
:%s/.\{0,6\}//
.%
zrobi cały dokument; możesz zastąpić to zaznaczeniem lub liniami, na których ci zależy.s
Komenda jest „substytutem”. Zastąpi wyrażenie regularne tym, co mu podasz, i będzie pasować tylko raz w każdej linii, chyba że dodasz konkretną opcję./
Jest separator - może to być dowolny znak, ale/
zazwyczaj jest stosowana, chyba że korzystne jest użycie czegoś innego (tak, nie trzeba uciekać/
w pozostałej części polecenia). Argument po pierwszym separatorze jest wyrażeniem regularnym, które będzie użyte do znalezienia pasujących ciągów w twoim wyborze. Argument po drugim separatorze jest tym, co zostanie zastąpione dopasowaniem.To polecenie mówi: znajdź od 0 do 6 wystąpień dowolnej postaci i zastąp je niczym.
źródło