Edytor tekstu z opcją podziału ekranu


26

Czy istnieje edytor, który ma opcję „podzielenia ekranu” na dwie lub więcej części, uzyskując dostęp do więcej niż jednego pliku (być może za pomocą drzewa plików) bez otwierania większej liczby okien edytora jednocześnie i jak to zrobić (jakie są polecenia).

Nie wiem, czy wyraziłem się jasno, ale „podzielony ekran” to jedyny sposób na opisanie tego, co chcę osiągnąć. Chcę go użyć do programowania, mając więcej niż jeden plik otwarty do edycji. Zauważ, że jestem całkiem nowy zarówno w vi, jak i emacs, jeśli potrafią to zrobić. Ponadto, jeśli trzeba to zrobić za pomocą edytora terminali, czy można to zrobić w tym samym terminalu, niezależnie od wielkości ekranu?


1
Wiem, że pytałeś konkretnie o edytory, a nie terminale, ale myślę, że warto to zanotować dla przyszłych gości: emulator terminala terminatorma również funkcję podziału ekranu: ctrl + shift + epodzieli się w pionie i ctrl + shift + opodzieli się w poziomie (a także ctrl + shift + totworzy nową kartę)
Carlos Campderrós,

@ CarlosCampderrós Będę o tym pamiętać, dzięki!
Ewa

1
@ CarlosCampderrós: ​​Możesz także użyć multipleksera, takiego jak screen lub tmux, aby osiągnąć to w innych terminalowych emulatorach. Wadą jest oczywiście to, że musisz najpierw je uruchomić, ale elastyczność jest prawdopodobnie tego warta.
Phoshi,

Odpowiedzi:


38

vim łatwo to zrobić:

ctrl+ ws- Dzielone okna

ctrl+ ww- przełączanie między oknami

ctrl+ wq- Zamknij okno

ctrl+ wv- Podziel okna pionowo

:sp filename

otworzy się filenamew nowym buforze i podzieli okno.

Możesz też zrobić

vim -o file1 file2

Aby otworzyć pliki w układzie podzielonego ekranu. Wymień -osię -Odo rozłamu pionowej zamiast poziomej.


4
Lub wpisz, :help CTRL-Waby zobaczyć wszystkie operacje podzielonego okna.
Bernhard

1
Wow świetne! Natknąłem się również na „: split”, ale dzieli się ono tylko w poziomie. Czy możesz podać, która to wersja vima? Dzięki!
Ewa

@Eve Używam VIM (Vi IMproved) 7.3.
pędzi

1
@Eve - możesz także użyć :vsplitdo utworzenia podziału pionowego i podobnie jak w :splitprzypadku akceptacji nazwy pliku lub polecenia
Bezużyteczne

1
I tak jak <C-w>h/ j / k / l będzie poruszał się między oknami w określonych kierunkach, <C-w>H/ J / K / L (wielkie litery) przesunie okno w tym kierunku.
Izkata

13

Można to zrobić za pomocą Emacsa. Działa w GUI oraz w trybie terminalowym. Możesz nawet podzielić wiele razy. Oto kilka podstawowych kombinacji klawiszy:

Cx 2 Podziel wybrane okno na dwa okna, jedno nad drugim (podziel okno poniżej).
Cx 3 Podziel wybrane okno na dwa okna, ustawione obok siebie (podział okna po prawej).
C-Mouse-2 W linii trybu okna podziel to okno.

Źródło: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html


1
Dla każdego, kto nie zna terminologii Emacsa , warto zauważyć, że okno Emacsa jest tym, co wielu innych redaktorów nazywa ekranem lub panelem . Ramka Emacsa jest tym, co inni nazywają oknem (nazywa się ramą, ponieważ okna w nim zawarte są otoczone dekoracją pulpitu (pasek tytułu i obramowania) lub terminalem ... Windows zawiera bufory (trochę tekstu; zwykle plik)
Peter.O,

1
@ Peter.O - Nie tylko dla tych, którzy nie znają Emacsa ... Używam Emacsa od ponad 5 lat i nie byłbym w stanie wyjaśnić różnic. Po prostu go używam.
jordanm

11

Z vimem możesz użyć splitlub vsplit.

Pierwszy podzieli się w poziomie, a drugi podzieli się w pionie.

CTRLw następnie do nawigacji między podzielonymi ekranami.

Możesz także użyć karty. tabnew filenameotworzy nazwę pliku w nowej karcie. Możesz używać tabnexti :tabpreviousdo nawigacji między kartami.

Osobiście mapuję lewą i prawą strzałkę, aby poruszać się między kartami:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a

1
Ponadto wtyczki NERD_tree można używać do wyświetlania drzewa katalogów w osobnym podziale. ( vim.org/scripts/script.php?script_id=1658 )
Bernhard

7

Kate

Zaawansowany edytor tekstu KDE jest bardzo funkcjonalny.
Ma wszystko, co opisałeś w pytaniu i wiele więcej .

Sam zobacz:

Zrzut ekranu

Aby podzielić widok, przejdź do WidokPodziel widok . Następnie możesz wybrać jedną z następujących opcji:

  • Podziel w pionie ( Ctrl+ Shift+ L)
  • Split Horizotal ( Ctrl+ Shift+ T)
  • Zamknij bieżący widok ( Ctrl+ Shift+ R)

Aby uzyskać układ jak na tym zrzucie ekranu, Podziel w pionie , kliknij w dolnym widoku, a następnie Podziel w poziomie .

Oczywiście granice widoków można zmienić, przeciągając między nimi granice (dzielniki). Aby przełączać się między widokami, użyj F8i Shift+ F8.

Nawiasem mówiąc, Kate ma tak zwany Tryb VI ( UstawieniaKonfiguruj Kate…Edycja → Tryb wprowadzania VI). Następnie skróty do podziału widoku stają się takie same jak w Vimie (zobacz tę odpowiedź ).


7

joe( Joe's Own Editor ) też może to zrobić:

ctrl+ ko- podziel okno w poziomie

ctrl+ kp- przejście do poprzedniego okna

ctrl+ kn- przejście do następnego okna

ctrl+ ke- otwórz nowy plik w bieżącym oknie

ctrl+ kg- wzrost wysokości bieżącego okna

ctrl+ kt- wysokość skurczu bieżącego okna

ctrl+ ki- ukryj wszystkie okna oprócz bieżącego, naciśnij ponownie, aby ponownie wyświetlić wszystkie okna

ctrl+ club ctrl+ kx- zamknij okno




2

Jeśli chodzi o drzewa plików, osobiście korzystam z NERDtree z Vimem. Wymaga patogenu. Znalazłem polecenie otwarcia drzewa ( :NERDtree toggle, iirc), aby było trochę długie, więc odwzorowałem je na <F2>. Jeśli pracujesz nad projektem z dużą ilością plików w wielu katalogach (pomyśl projekty w Railsach), jest to naprawdę fajne.

EDYTOWAĆ:

NERDtree jest na Github: https://github.com/scrooloose/nerdtree

To jest mapowanie, którego używam w moim .vimrc: map <F2> :NERDTreeToggle<CR>


Dzięki, mogę mieć inne pytania na ten temat. Te, które rezerwuję na inny czas. ;)
Ewa

1

Używam tmuxi vimdo edycji na podzielonym ekranie w środowisku terminala oparte, choć można użyć dowolnego edytora wiersza polecenia w oparciu o ten tekst (na przykład nano, emacsetc.).

tmuxjest skrótem od „multipleksera terminali” i pozwala tworzyć sesje z wieloma terminalami, działające w osobnych „oknach”, a także „oknach” w tych oknach, które umożliwiają podział ekranu. tmuxjest zawarty w repozytoriach wielu dystrybucji Linuksa i BSD. Uważam, że jest to najbardziej elastyczna opcja kodowania, ponieważ mogę również dodawać podziały i okna zawierające terminale, w których mogę kompilować kod i korzystać z systemu kontroli wersji, podobnie jak podczas gitedycji kodu.

Oto przykład, jak utworzyć sesję edycji podzielonego ekranu przy użyciu tmuxi vim.

Najpierw otwórz terminal. W poniższych poleceniach napisanych po$ z wiersza poleceń. Używa domyślnych przypisań klawiszy w tmux.

  1. Rozpocznij nową sesję tmux. Tutaj tworzymy jeden zwany „kodowaniem”:

    $ tmux new -s coding

    Tmux właśnie otworzył

  2. Naciśnij Ctrl+, ba następnie albo %dla podziału pionowego lub "poziomego.

    podział pionowy

    podział poziomy

  3. Możesz poruszać się między podziałami (lub w tmuxskrócie „oknami”), naciskając Ctrl+b a następnie o.

  4. Teraz otwórz edytor tekstowy z dowolnymi plikami, które chcesz edytować w każdym panelu. Tutaj właśnie otworzyłem dwa pliki tekstowe za pomocąvim np

    $ vim file1.txt

    Przełącz panele: Ctrl+ ba następnie o.

    $ vim file2.txt

    edycja dwóch plików jednocześnie

tmuxjest bardzo zaawansowany, pozwala na wiele paneli w jednym oknie rozmieszczonym na różne sposoby i vimumożliwia otwieranie wielu plików tekstowych jednocześnie na kartach. Zazwyczaj używam zarówno tabulacji wvim i paneli, tmuxaby umożliwić jednoczesną edycję, kontrolę wersji i kod debugowania. Jeśli masz czas zainwestować w naukę skrótów klawiaturowych i ich funkcji tmux, może to być bardzo potężne środowisko programistyczne.

ZA tmuxŚciągawka dla rozpoczynających działalność: ekran dayid i tmux Ściągawka

Samouczek na temat kart w vim: Porady Vima: Korzystanie z kart


0

osobiście użyłbym screena lub tmuxa. oba umożliwiają otwieranie wielu paneli, chociaż myślę, że Tmux lepiej odzyskuje sesję z wieloma panelami niż ekran. zyskujesz także dodatkową korzyść z możliwości dołączenia do sesji, jeśli rozłączysz się z sesją lokalnego pulpitu, a następnie zalogujesz się SSH. Możesz nawet udostępnić sesję innym użytkownikom w celu współpracy.


oto opinia negatywna, ponieważ nie używasz zmiany
Peter mówi, że przywróć Monikę

0

Obok vim, emacsijoe redaktorzy, oto kilka innych terminali (TTY) / x-terminali redaktorzy emulatora, który może pokazać co najmniej dwóch plików jednocześnie. To może nie być najsłodsze szwajcarskie noże wojskowe, ale krzywa uczenia się w żadnym wypadku nie wydaje się zbyt stroma:

1) mcedit

Jest częścią Midnight Commander (menedżera plików w trybie tekstowym, zainstaluj go apt-get install mcw dystrybucjach opartych na Debianie).

mcedit

2) wpe \ xwpe

Dostępne z apt-get install xwpew dystrybucji Dedbian. Wydaje się jednak, że jest to zatrzymana ochrona.

xwpe

3) nfte \ efte

eFTE jest również dostępne za pośrednictwem apt-get install efte.

efte

Z drugiej strony, dla X-window dostępne są również narzędzia do porównywania GUI, które mogą być przydatne w tym celu. W mojej Linux Mint mam co najmniej dwa:

4) xxdiff

Aplikacja oparta na Qt ( apt-get install xxdiff)

xxdiff

Nie przetestowano i nie pokazano, ale istnieje również Fldiffprzy użyciu Fast Light Toolkit (FLTK), ale częściowo zainspirowany xxdiff. Również w oficjalnych repozytoriach ( apt-get install fldiffi możesz to przetestować samodzielnie). To samo dotyczy mgdiff.

5) kdiff3

Podobna aplikacja KDE ( apt-get install kdiff3).

kdiff3


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.