Editor teks dengan opsi layar terbagi

26

Apakah ada editor yang memiliki opsi untuk "membagi layar" menjadi dua atau lebih bagian, mengakses lebih dari satu file (mungkin dengan pohon file) tanpa membuka lebih banyak jendela editor sekaligus, dan bagaimana seseorang melakukan ini (apa saja perintah).

Saya tidak tahu apakah saya membuat diri saya jelas, tetapi "layar split" adalah satu-satunya cara untuk menggambarkan apa yang ingin saya capai. Saya ingin menggunakannya untuk memprogram, memiliki lebih dari satu file yang terbuka untuk diedit. Perhatikan bahwa saya cukup baru untuk vi dan emacs, jika ini mampu melakukan ini. Juga, jika ini harus dilakukan melalui editor terminal, dapatkah itu dilakukan di terminal yang sama, terlepas dari ukuran layar?

Malam
sumber
1
Saya tahu Anda bertanya secara khusus tentang editor dan bukan terminal, tetapi saya pikir perlu untuk dicatat bagi pengunjung masa depan: terminal emulator terminatorjuga memiliki fitur layar terbagi: ctrl + shift + eakan terbelah secara vertikal dan ctrl + shift + oakan terbelah secara horizontal (dan juga ctrl + shift + takan membuka tab baru)
Carlos Campderrós
@ CarlosCampderrós saya akan mengingatnya, terima kasih!
Eve
1
@ CarlosCampderrós: ​​Anda juga dapat menggunakan layar seperti multiplexer atau tmux untuk mencapainya di emulator terminal lainnya. Kekurangannya, tentu saja, adalah Anda harus ingat untuk menjalankannya terlebih dahulu, tetapi fleksibilitasnya mungkin sepadan.
Phoshi

Jawaban:

38

vim dapat dengan mudah melakukan itu:

ctrl+ ws- Membagi jendela

ctrl+ ww- beralih di antara windows

ctrl+ wq- Keluar dari jendela

ctrl+ wv- Membagi jendela secara vertikal

:sp filename

akan terbuka filenamedi buffer baru dan membagi jendela.

Anda juga bisa melakukannya

vim -o file1 file2

Untuk membuka file dalam tata letak layar terbagi. Ganti -odengan -Ountuk split vertikal, bukan horizontal.

buru-buru
sumber
4
Atau ketik :help CTRL-Wuntuk melihat semua operasi jendela terpisah.
Bernhard
1
Wow hebat! Saya juga menemukan ": split", tetapi hanya terbagi secara horizontal. Bisakah Anda cukup memasukkan versi vim ini? Terima kasih!
Eve
@Eve Saya menggunakan VIM (Vi IMproved) 7.3.
buru
1
@ Eve - Anda juga dapat menggunakan :vsplituntuk membuat pemisahan vertikal, dan karena :splititu menerima nama file atau perintah
berguna
1
Dan seperti <C-w>h/ j / k / l akan bergerak di antara jendela ke arah tertentu, <C-w>H/ J / K / L (dikapitalisasi) akan memindahkan jendela ke arah itu.
Izkata
13

Ini dapat dilakukan dengan menggunakan Emacs. Ini bekerja dalam GUI dan dalam mode terminal. Anda bahkan dapat membagi beberapa kali. Berikut adalah beberapa kombinasi tombol dasar:

Cx 2 Membagi jendela yang dipilih menjadi dua jendela, satu di atas yang lain (split-window-di bawah).
Cx 3 Membagi jendela yang dipilih menjadi dua jendela, diposisikan berdampingan (split-window-right).
C-Mouse-2 Pada baris mode jendela, pisahkan jendela itu.

Sumber: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html

jordanm
sumber
1
Bagi siapa pun yang tidak terbiasa dengan terminologi Emacs , perlu dicatat bahwa jendela Emacs adalah apa yang oleh banyak editor lain disebut layar atau panel . Frame Emacs adalah apa yang orang lain sebut jendela (itu disebut bingkai karena jendela di dalamnya dibingkai baik oleh dekorasi desktop (judul-bar dan perbatasan) atau oleh terminal ... Windows berisi buffer (beberapa teks; biasanya sebuah file).
Peter.O
1
@ Peter.O - Bukan hanya untuk mereka yang tidak terbiasa dengan Emacs ... Saya telah menggunakan Emacs selama lebih dari 5 tahun dan tidak akan bisa menjelaskan perbedaannya. Saya hanya menggunakannya.
jordanm
11

Dengan vim, Anda dapat menggunakan splitatau vsplit.

Yang pertama akan terbelah secara horizontal dan yang kedua akan terbelah secara vertikal.

CTRLw kemudian untuk menavigasi layar terbagi.

Anda juga dapat menggunakan tab. tabnew filenameakan membuka nama file di tab baru. Anda dapat menggunakan tabnextdan :tabpreviousuntuk menavigasi antar tab.

Saya pribadi memetakan panah kiri dan kanan untuk bernavigasi di antara tab:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a
Luc M
sumber
1
Selain itu, plug-in NERD_tree dapat digunakan untuk menampilkan struktur direktori dalam pemisahan terpisah. ( vim.org/scripts/script.php?script_id=1658 )
Bernhard
7

Kate

KDE Advanced Text Editor sangat fitur.
Ini memiliki semua yang Anda jelaskan dalam pertanyaan dan banyak lagi .

Lihat diri mu sendiri:

Tangkapan layar

Untuk membagi tampilan, buka TampilanTampilan Split . Kemudian Anda dapat memilih salah satu dari opsi ini:

  • Split Vertical ( Ctrl+ Shift+ L)
  • Split Horizotal ( Ctrl+ Shift+ T)
  • Tutup Tampilan Sekarang ( Ctrl+ Shift+ R)

Untuk mendapatkan tata letak seperti pada tangkapan layar ini, Split Vertical , klik pada tampilan bawah dan kemudian Split Horizontal .

Tentu saja, batas tampilan dapat diubah dengan menyeret batas (splitter) di antara mereka. Untuk beralih di antara tampilan, gunakan F8dan Shift+ F8.

Ngomong-ngomong, Kate memiliki apa yang disebut Mode VI ( PengaturanKonfigurasi Kate ...Edit → Mode Input VI). Kemudian pintasan untuk pemisahan tampilan menjadi sama seperti di Vim (lihat jawaban ini ).

Oleh Prypin
sumber
7

joe( Editor Joe Sendiri ) dapat melakukan ini juga:

ctrl+ ko- pisahkan jendela secara horizontal

ctrl+ kp- beralih ke jendela sebelumnya

ctrl+ kn- beralih ke jendela berikutnya

ctrl+ ke- buka file baru di jendela saat ini

ctrl+ kg- meningkatkan ketinggian jendela saat ini

ctrl+ kt- menyusutkan ketinggian jendela saat ini

ctrl+ ki- sembunyikan semua jendela kecuali yang sekarang, tekan lagi untuk menampilkan semua jendela lagi

ctrl+ catau ctrl+ kx- tutup jendela

scai
sumber
5

Sublime Text 2 dapat melakukan itu (dan banyak lagi).

Dan F.
sumber
4

Jika Anda tertarik untuk memahami sedikit lebih baik dengan VIM, lihat vimcasts.org , ia memiliki banyak tutorial video yang sangat ramah. Yang ini terutama untuk sihir layar terbagi

Nikmati!

lwm
sumber
Itu bagus, terima kasih banyak! Saya akan naik ini lebih banyak, tetapi saya hanya diizinkan satu.
Hawa
2

Mengenai pohon file, saya pribadi menggunakan NERDtree dengan Vim. Itu membutuhkan Patogen. Saya menemukan perintah untuk membuka pohon ( :NERDtree toggle, iirc) agak panjang, jadi saya memetakannya kembali <F2>. Jika Anda mengerjakan proyek dengan banyak file di banyak direktori (pikirkan proyek Rails), itu sangat bagus.

EDIT:

NERDtree ada di Github: https://github.com/scrooloose/nerdtree

Ini adalah pemetaan ulang yang saya gunakan di .vimrc saya: map <F2> :NERDTreeToggle<CR>

AlexWebr
sumber
Terima kasih, saya mungkin punya pertanyaan lain tentang ini. Yang saya pesan untuk lain waktu. ;)
Eve
1

Saya menggunakan tmuxdan vimuntuk mengedit layar terpisah di lingkungan berbasis terminal, meskipun Anda dapat menggunakan editor teks berbasis baris perintah untuk ini (misalnya nano, emacsdll.).

tmuxadalah kependekan dari "terminal multiplexer" dan memungkinkan Anda untuk membuat sesi dengan beberapa terminal, berjalan di "jendela" yang terpisah dan juga "panel" di dalam jendela ini, yang memungkinkan Anda untuk membagi layar. tmuxtermasuk dalam repositori dari banyak distribusi Linux dan BSD. Saya menemukan ini menjadi pilihan yang paling fleksibel untuk pengkodean, karena saya juga dapat menambahkan splits dan windows yang berisi terminal di mana saya dapat mengkompilasi kode dan menggunakan sistem kontrol versi, seperti di gitsamping mengedit kode saya.

Berikut adalah contoh bagaimana saya akan membuat sesi pengeditan layar split menggunakan tmuxdan vim.

Pertama buka terminal. Dalam perintah di bawah ini ditulis setelah $dikeluarkan dari baris perintah. Ini menggunakan binding kunci default di tmux.

  1. Mulai sesi tmux baru. Di sini kita membuat satu yang disebut "coding":

    $ tmux new -s coding

    tmux baru saja dibuka

  2. Tekan Ctrl+ bdiikuti oleh %perpecahan vertikal atau "perpecahan horizontal.

    perpecahan vertikal

    perpecahan horizontal

  3. Anda dapat bergerak di antara pemisahan (atau dengan kata lain tmux, "panel") dengan menekan Ctrl+ bdiikuti oleh o.

  4. Sekarang buka editor teks dengan file apa pun yang ingin Anda edit di setiap panel. Di sini saya baru saja membuka dua file teks menggunakan vim, mis

    $ vim file1.txt

    Ganti panel: Ctrl+ bdiikuti oleh o.

    $ vim file2.txt

    mengedit dua file secara bersamaan

tmuxsangat canggih, memungkinkan untuk beberapa panel dalam satu jendela yang diatur dalam berbagai cara dan vimmemungkinkan Anda untuk membuka banyak file teks sekaligus di tab. Saya cenderung menggunakan tab vimdan panel tmuxuntuk memungkinkan saya mengedit, mengontrol versi, dan kode debug secara bersamaan. Jika Anda memiliki waktu untuk berinvestasi dalam mempelajari cara pintas keyboard dan fitur-fiturnya tmuxbisa menjadi lingkungan pengembangan yang sangat kuat.

Sebuah tmuxlembar contekan untuk memulai: layar dayid dan tmux lembar contekan

Tutorial tab di vim: Kiat Vim: Menggunakan tab

James Womack
sumber
0

saya pribadi akan menggunakan layar atau tmux. keduanya memungkinkan Anda untuk membuka beberapa panel meskipun saya pikir tmux lebih baik dalam memulihkan sesi multi panel daripada layar. Anda juga mendapatkan manfaat tambahan karena dapat melampirkan ke sesi jika Anda memutuskan sambungan dari sesi desktop lokal Anda dan kemudian SSH masuk. Anda bahkan memiliki kemampuan untuk berbagi sesi dengan pengguna lain juga untuk kolaborasi.

morggin
sumber
di sini adalah downvote karena Anda tidak menggunakan shift
peterh mengatakan mengembalikan Monica
0

Di samping vim, emacsdan joeeditor, berikut adalah beberapa editor terminal lainnya (tty) / x-terminal emulator, yang dapat memperlihatkan setidaknya dua file sekaligus. Mungkin bukan pisau tentara Swiss yang imut, tetapi kurva belajar tampaknya tidak terlalu curam dalam hal apa pun:

1) mcedit

Merupakan bagian dari Midnight Commander (manajer file mode teks, instal dengan apt-get install mcdi distro berbasis Debian).

mcedit

2) wpe \ xwpe

Tersedia dengan apt-get install xwpedi distro Dedbian. Namun, sepertinya itu adalah perlindungan yang dihentikan.

xwpe

3) nfte \ efte

eFTE juga tersedia melalui apt-get install efte.

efte

Di sisi lain, untuk jendela-X ada juga beberapa alat "diff" GUI yang mungkin berguna untuk tujuan ini. Di Linux Mint saya, saya memiliki setidaknya dua:

4) xxdiff

Aplikasi berbasis Qt ( apt-get install xxdiff)

xxdiff

Tidak diuji dan tidak ditampilkan, tetapi ada juga Fldiffmenggunakan Fast Light Toolkit (FLTK) tetapi sebagian diilhami xxdiff. Juga di repositori resmi ( apt-get install fldiffdan Anda dapat mengujinya sendiri). Hal yang sama berlaku untuk mgdiff.

5) kdiff3

Aplikasi KDE serupa ( apt-get install kdiff3).

kdiff3

Fran
sumber
0

Anda dapat menggunakan editor teks atom github. Muncul dengan fungsi layar terbagi.

Göktuğ Aşçı
sumber