Vscode: Tab untuk terminal terintegrasi

Dibuat pada 15 Agu 2016  ·  191Komentar  ·  Sumber: microsoft/vscode

Permintaan fitur.

Terminal default

image

Tapi bisa lebih bermanfaat ...

terminals2
terminals1

feature-request integrated-terminal layout ux

Komentar yang paling membantu

Saya berharap ini akan segera mendapat perhatian karena permintaan, saya sangat menginginkannya juga. Juga seperti yang disebutkan @jaxspades, itu ada di peta jalan.

Semua 191 komentar

Tab tersebut pada awalnya dianggap tetapi banyak digeser oleh tim karena dapat menyebabkan kebingungan karena memiliki tab di bagian bawah dan membuat vscode terasa kurang "ringan". Jika saya tidak memiliki keybindings untuk terminal focusNext dan focusPrevious saya akan merasa sangat frustrasi dengan kurangnya tab karena dropdown sulit digunakan.

Tampilan split juga dipertimbangkan dan kemudian diprioritaskan karena aplikasi seperti tmux dapat berjalan di terminal terintegrasi untuk mencapai hasil yang sama, saya sejak itu memutar dari sini dan benar-benar ingin dapat membagi terminal. Saya tidak secara khusus ingin mempelajari keybindings tmux dan bagian dari alur kerja saya adalah menampilkan beberapa terminal sekaligus; biasanya perintah arloji yang saya pantau untuk kesalahan dan perintah membangun atau meluncurkan manual. Mari kita lacak pemisahan terminal di # 7504

@stevencl @ bgashler1 harap pertimbangkan tab lagi dengan mengingat bahwa saya tidak dapat menemukan keybindings default yang masuk akal untuk tindakan terminal focusNext dan focusPrevious (Saya mengikat ctrl + shift + j / k).

Kami perlu mempertimbangkan ini dalam konteks masalah ini: https://github.com/Microsoft/vscode/issues/9659

Saya benar-benar waspada dengan tab dalam desain tab. Kami akan berakhir hanya menggunakan semua ruang yang tersedia untuk menampilkan tab :-)

Hanya berpikir keras di sini, apakah kita benar-benar perlu menunjukkan tab jika kita mengizinkan pemisahan terminal? Apakah cukup jika kita hanya mengekspos tindakan untuk membelah dan menciutkan terminal tetapi tidak harus menampilkan tab sebenarnya?

Mungkin, saya dapat melihat diri saya menggunakan 2-3 terminal terpisah melalui tab / banyak terminal. Mengelola terminal terpisah dan terminal tab akan menjadi sangat membingungkan dan mungkin hampir tidak dapat digunakan karena kurangnya keybindings.

Jika kita membuka pintu untuk memisahkan terminal, apa artinya pemisahan misalnya satu terminal dan satu repl debug? apakah ini interaksi UX yang sama?

@bpasero dengan membelah maksud saya buat terminal baru ke samping, jadi ya itu akan sama.

Untuk menyederhanakan interaksi, mungkin ada pengaturan untuk selalu menggunakan _either_ dropdown atau memisahkan terminal. Dengan begitu semua perintah yang ada akan tetap berfungsi dengan baik, Anda cukup memilih untuk menampilkan 1 atau semua terminal kapan saja.

Ketakutan yang saya miliki dengan memperkenalkan tab dan membelah terminal adalah bahwa itu mungkin terlihat seperti grup editor. Saya tidak ingin pengguna kecewa karena mereka tidak dapat menyeret editor ke terminal atau terminal ke dalam grup editor. * Selain itu, memperkenalkan ini mungkin lereng licin dalam manajemen jendela, seperti mengapa kami bahkan memiliki horizontal khusus panel untuk hal-hal seperti ini di tempat pertama. Mengapa tidak membiarkan terminal hidup di mana pun yang diinginkannya, daripada mereplikasi begitu banyak fungsi di UI khusus.

* mungkin kami dapat memberi tahu mereka tentang batasan tersebut dengan mengunci seret pada sumbu x dan / atau memiliki kursor yang tidak aktif ketika mencoba menarik ke luar suatu area, tetapi sulit untuk menghindari orang yang mengharapkan ini untuk bekerja.

Saat kami memperkenalkan pemisahan grup editor secara horizontal, salah satu kendala yang kami terapkan adalah bahwa grup editor hanya dapat dipisahkan secara horizontal atau dipisahkan secara vertikal. Jadi mungkin aneh bagi pengguna untuk memiliki panel yang terlihat sangat mirip dengan grup editor horizontal (tetapi tidak berperilaku persis sama) yang berada di bawah grup editor vertikal.

Kita harus membicarakan lebih banyak tentang ini selama sinkronisasi UX pada hari Rabu. Ada beberapa desain yang tidak saya tunjukkan terakhir kali terkait dengan tata letak horizontal yang relevan dengan ini

Bagaimana dengan opsi untuk menyelaraskan terminal dengan tab editor, sehingga terminal secara otomatis mencerminkan bahasa dari file editor?

Membuka terminal akan secara otomatis memuat shell yang telah dikonfigurasi untuk bahasa editor yang aktif (saat ini dipilih). Beberapa shell terminal harus didukung dalam file settings.json.

Tidak masalah bagaimana editor dibagi - terminal selalu menampilkan shell untuk editor (aktif) yang dipilih. Ini sederhana dan lugas. Dengan metode ini tidak perlu membagi terminal, tidak perlu terminal tab. Terminal akan terus muncul seperti sekarang.

Jika ada beberapa shell yang tersedia untuk bahasa tersebut, atau Anda ingin menjalankan konfigurasi seperti node shell dan git shell untuk satu tab editor, maka mungkin shell dapat dipilih dalam satu panel. Ini agak mirip terminal tab, kecuali mereka tidak disajikan sebagai tab keras, yang menyiratkan sub-konteks. Ini tidak 'terasa' substansial seperti tab. Konteksnya ada dalam panel terminal untuk editor yang saat ini dipilih.

String hypertext sederhana (satu untuk setiap shell) yang terletak di kanan atas terminal akan menampilkan shell yang terbuka (dipakai) untuk editor yang saat ini dipilih. Seorang pengguna dapat hanya mengklik pada string hypertext, yang mungkin mengatakan node, untuk memilihnya, atau menggunakan key binding untuk menggilir. Ini akan menggantikan menu tarik-turun yang ada, +, dan tong sampah. Kerang mungkin bisa disajikan dalam huruf kecil.

Entah string hypertext sederhana dapat ditampilkan atau hanya ikon - meskipun, string mungkin lebih baik. Ini akan menggantikan daftar drop-down rumit yang saat ini digunakan di VSCode dan menampilkan shell secara sekilas.

Saat Anda mengalihkan fokus dari editor saat ini, ke editor dengan bahasa lain (misalnya, Ruby), terminal akan menampilkan instans IRB di terminal. Jika pengguna ingin membuka instance lain dari shell saat ini, mereka mungkin hanya perlu mengarahkan kursor ke hypertext untuk shell tersebut dan mengklik + yang akan muncul. Jika string hypertext pendek - seperti node, irb, cmd, ps - string lain dapat dibuat di sebelah string yang digunakan untuk membuat instance baru. String akan bergerak terpisah untuk memberi ruang tetapi tidak akan menjadi berantakan karena batas dapat ditetapkan (siapa yang akan membuka lebih dari tiga shell untuk melawan editor?).

Mengarahkan kursor ke atas shell mungkin juga dapat menampilkan puncak, yang menunjukkan konten shell untuk string tersebut. Padahal, jika pengguna menggunakan pengikatan kunci untuk beralih / siklus, mungkin lebih mudah untuk memeriksanya.

Jika Anda ingin memberi pengguna opsi untuk menambahkan shell yang tidak terkait dengan editor, seperti git shell, mengklik + dapat menampilkan menu shell yang terdaftar di file settings.json. The - yang akan muncul di hover di sebelah setiap string hypertext, tentu saja, tidak akan menampilkan opsi apa pun. Ini akan menutup instance shell saat ini.

Jika pengguna ingin mengubah jenis shell, mereka dapat keluar dari shell (untuk kembali ke default) dan kemudian meluncurkan shell baru dengan mengetik nama shell. String hypertext yang mewakili shell akan berubah untuk mencerminkan shell baru.

Dalam kasus shell git, mungkin logis untuk menawarkan opsi bagi pengguna untuk menentukan bahwa shell git akan selalu dibuka dengan shell bahasa editor, sehingga git ada dalam konteks lokasi file tersebut. Jika beberapa file dibuka dari lokasi git yang sama, semua instance git shell di semua editor akan mencerminkan pembaruan atau perintah terbaru.

File settings.json kemungkinan akan meminta pengguna untuk memasukkan ekstensi bahasa tertentu (.js, .cs, .rb) terhadap setiap terminal.internal.shell. entri sehingga ada kecocokan logis dengan file. Shell default dapat dikonfigurasi untuk semua jenis file yang tidak ditentukan di settings.json.

Instance shell yang dimuat untuk setiap editor bertahan selama editor tersebut terbuka. Segera setelah editor (file) ditutup, shell terminal terkait juga ditutup.

Saya percaya bahwa ini adalah implementasi sederhana yang juga akan membuat VSCode lebih kuat daripada yang ada saat ini, sekaligus sangat intuitif. Ketika pengguna mengganti konteks di editor bahasa, mereka tidak perlu memikirkan terminal. Terminal akan selalu menampilkan shell dan kode yang terakhir dijalankan, termasuk histori terkait, dll, yang terakhir digunakan untuk editor yang dipilih.

@ nick-walt meskipun mungkin lebih intuitif bagi sebagian orang, sama sekali tidak intuitif bagi orang lain. Ini mungkin akan menyebabkan orang menjadi agak bingung dan bertanya-tanya ke mana perginya cangkang mereka. Juga persyaratan saya adalah memiliki 2 shell yang ditampilkan sekaligus; satu untuk tugas jam tangan yang kesalahannya saya lacak dan satu lagi untuk tugas peluncuran, git, build, dll.

Beberapa konfigurasi terminal telah muncul sebelumnya, saya tidak begitu yakin itu sepadan dengan kompleksitas tambahan meskipun ketika sebagian besar waktu Anda dapat menjalankan shell di shell Anda yang lain (membuka PowerShell, ruby, node, dll. Dalam cmd).

@Tyri
Itu adalah kekhawatiran yang bagus, tetapi saya pikir itu dapat diselesaikan dengan cukup mudah jika dianggap sebagai pertimbangan.

Hindari disorientasi
Dalam keadaan default-nya, dalam instalasi baru yang belum dikonfigurasi, terminal dapat berperilaku dengan cara yang sudah dikenal. Ini untuk menghindari disorientasi dari perilaku yang tidak terduga.

Memisahkan terminal
Memisahkan panel terminal tidak mengubah model. Ini hanyalah cara untuk melihat lebih dari satu shell di panel terminal dalam satu waktu. Anda dapat menyeret panel keluar dari jendela utama dan beralih ke layar penuh di monitor lain. Kemudian pengguna dapat memberitahu terminal untuk membagi secara otomatis dan merata antara cangkang terbuka, secara vertikal atau horizontal. Satu terminal, beberapa cangkang - semuanya dalam konteks dengan editor yang saat ini dipilih.

Menonton
Jika kami tidak ingin melupakan instance shell yang sedang kami tonton, saat Anda beralih ke editor lain, mungkin fitur jam tangan yang menunjukkan jumlah baris yang dapat dikonfigurasi dapat menyelesaikan masalah ini. Jika terjadi kesalahan, ini juga dapat ditampilkan sebagai ikon jika pengguna melewatkannya karena pengguliran cepat. Ini sudah dilakukan di panel Error VSCode. Panel pengamat hanya dapat ditampilkan dan mengarahkan kursor ke panel tersebut dapat menunjukkan sampel yang lebih besar.

Kecanggihan tanpa beban kerumitan
Dengan terminal kontekstual, kemampuan untuk memiliki banyak shell di semua editor Anda tidak akan terasa berlebihan atau membebani. Dengan model yang tepat, orang-orang UI / UX dapat membuatnya berfungsi dengan elegan.

Saya pikir kekhawatiran Anda dapat ditangani sepenuhnya.

Itu tergantung untuk terminal apa yang akan (seharusnya) digunakan. Jika itu akan digunakan untuk menjalankan beberapa perintah satu kali maka beberapa terminal hampir tidak diperlukan dengan cara apapun.

Beberapa terminal diperlukan jika mereka akan digunakan untuk menjalankan beberapa tugas latar belakang secara bersamaan, seperti melayani, membangun, menonton, menguji, dll.

Jadi dalam hal ini adalah layak untuk memiliki gambaran singkat tentang terminal apa yang dibuka dan apa yang mereka jalankan (dengan kemungkinan status operasi). Saya tidak yakin bagaimana ini bisa dilakukan tanpa tab bernama / dibuat .

Split view juga diperlukan karena pada layar lebar tersedia tempat minimal untuk lebih dari satu terminal.

Satu pertanyaan lagi adalah penggunaan kooperatif dengan pelari tugas. Yang saat ini digunakan untuk menjalankan hanya satu tugas dalam satu waktu. Tetapi https://github.com/Microsoft/vscode/issues/981 ini mengasumsikan bahwa ini akan mendukung banyak tugas latar belakang - jadi itu adalah tujuan serupa (saya tidak akan mengatakan bertentangan) seperti untuk beberapa terminal.

Jetbrains Webstorm saat ini memiliki kemampuan seperti itu - dapat menjalankan banyak tugas (ditentukan melalui grunt / gulp / npm) dan beberapa terminal (dengan tab bernama). Dan Anda juga dapat menggunakan tampilan terpisah di mana satu sisi Anda melihat tugas yang sedang berjalan, dan di sisi lain - terminal. (melampirkan layar)

image

@warna putih

Oke, jadi jika kita membuat daftar semua skenario dan kesamaannya, dimungkinkan untuk menyaring fungsionalitas yang diperlukan menjadi keanggunan yang dapat menangani beragam penggunaan - tanpa VSCode menjadi terlalu berat.

Banyak tab tanpa kelelahan
Dengan terminal yang terikat pada konteks editor, masalah pemutusan kegunaan (seperti tab mana yang terkait dengan editor mana) penggunaan 'tab lunak', alias string hypertext yang menamai shell dalam konteks terminal / editor, akan memungkinkan lebih banyak tab tanpa menyebabkan pengguna pergi berburu tab dan menghindari kelelahan konteks / asosiasi agar tidak terlacak di kepala mereka.

Kerang bernama
Dengan gagasan string hypertext sederhana yang menunjukkan nama instance shell dalam panel terminal, muncul kemungkinan pembuatan dan penamaan alternatif. Jadi, pengguna memiliki satu shell yang dikonfigurasi di settings.json, yang mungkin adalah 'cmd'.

Setelah mereka berada di shell, mereka dapat melompat ke shell lain, seperti 'PowerShell' atau 'Bash', dan string hypertext bernama 'cmd' di header terminal dapat berubah untuk mencerminkan shell tempat pengguna beralih.

Atau, pengguna dapat membuat instance shell tambahan dari shell 'cmd' starter mungkin dengan menggunakan perintah yang dipahami panel terminal sebagai membuat "baru".

Idenya adalah untuk menyiratkan di UI fakta bahwa shell yang dinamai bukanlah tab yang tidak terkait, tetapi shell dalam editor induk. Saya menggunakan istilah 'tab' untuk menunjukkan shell yang tidak terkait dan mandiri yang terpisah dari yang lain. Ini bisa menjadi mode, di mana hard-tab bersifat global, dan soft-tab berada dalam konteks editor.

Jika mode hard-tab / soft-tab disertakan maka mungkin hard tab bisa memiliki hard boarder, seperti tab yang menampilkan editor. Perilaku nama akan identik dengan tab lunak.

Hal yang terpenting adalah mempertahankan model UI / UX yang sudah mapan. Kita semua telah melihat banyak contoh di mana model rusak di berbagai implementasi UI dalam satu aplikasi. Sebenarnya, Microsoft pandai dalam hal ini (dan lebih akhir lagi, Apple). Ini adalah kasus klasik 'desain oleh komite'.
mapan

Sederhana, pengguna shell tunggal
Namun, jika pengguna ingin menjalankan disederhanakan dan terminal / shell tunggal maka tidak ada cara untuk mencapai itu, dan yang terpenting, konfigurasinya sederhana. Ini hanyalah skenario penggunaan lain dalam matriks pertimbangan.

Jika tab akan ditambahkan, saya ingin memiliki opsi konfigurasi untuk menonaktifkannya / memaksa satu contoh dari terminal terintegrasi. Jika saya memerlukan fitur _advanced_ seperti itu, saya biasanya menggunakan terminal (eksternal) pilihan saya.

Saya juga akan mempertimbangkan hal seperti terminal split (split lebih maju) sehingga semua output terminal penting yang berjalan (mungkin lebih dari dua) di mana di depan mata bahkan sebagian.

Bagaimana jika menampilkan tab terminal di tempat yang sama dengan tab file?
Itu tidak akan merusak UI dan tidak ada fungsi yang akan hilang.

@cescoferraro Saya suka ide ini. Tetapi VS Code juga harus mendukung tampilan tab yang dipisahkan secara vertikal dan tidak hanya secara horizontal. Jika tidak, itu tidak akan benar-benar memenuhi kondisi untuk melihat banyak terminal tanpa membuang ruang.

@Phisherman Jangan salah
Saya sering menggunakannya di Intellij dengan layar besar dan banyak pengaturan memori.
Apapun keputusannya, itu harus dapat dicolokkan jika memiliki banyak memori untuk menjaga VSCode secepat mungkin.

Saya telah menulis ekstensi dengan itu Anda dapat memilih tugas npm / gulp, itu akan meluncurkan terminal (dengan nama tugas) dan menjalankannya di sana, juga akan menempatkan item di bilah status yang dapat Anda klik kapan saja, juga itu melakukan pelacakan dasar dari status proses yang sedang berjalan.
image

Hanya untuk menunjukkan kemungkinan lokasi "tab", mereka bisa berada di bagian bawah teminal.

@whitecolor : open_mouth: ini menggunakan API terminal baru? Itu luar biasa!

@Tyriar Ya, yang sedang Anda kerjakan: wink:

Seperti yang disebutkan oleh @whitecolor , WebStorm memiliki tab untuk terminal dan ini meningkatkan aksesibilitas IDE. Selain WebStorm ini memungkinkan Anda untuk mengubah nama tab yang sekali lagi membantu Anda mengidentifikasi secara visual apa yang harus dimulai.

Sesuatu yang WebStorm tidak lakukan adalah tidak menyimpan jumlah tab terminal yang terbuka.
Ketika Anda mengembangkan, Anda biasanya membutuhkan tab yang sama (server, pengamat, backend ...). Jika jumlah tab dapat disimpan serta namanya, itu akan luar biasa.

@whitecolor setelah memikirkannya sedikit, ada beberapa masalah yang akan Anda hadapi dengan API saat ini dalam mengimplementasikan tab terminal seperti itu, dengan asumsi Anda mengekspos ekstensi perintah "buat terminal baru" yang ingin Anda timpa dengan yang default. Berikut beberapa masalah yang harus Anda lacak jika Anda tertarik untuk membuat ekstensi seperti ini:

  • Ketika vscode dimulai ulang, terminal standar akan dibuat, Anda tidak dapat melampirkan item bilah status ke ini
  • Ekstensi tidak menyadari ketika sebuah terminal dibuang oleh pengguna, jadi item bilah status akan bertahan setidaknya sampai diklik lagi # 10925
  • (Bug) Membuang terminal akan menampilkan panel # 11275
  • Juga muncul di v1.6.0 mungkin terminal kemungkinan akan disembunyikan secara default, jadi Anda harus menelepon ke Terminal.show tepat setelah membuatnya # 11384

@Tyriar terima kasih telah berbagi, akan menjawab daftar Anda:

1) Ya itu tidak begitu penting, ekstensi saya sebenarnya menambahkan perintah "Buka terminal baru" dan memungkinkan untuk membuka terminal bernama baru, saya biasanya hanya menutup standar, dan menggunakan yang dibuat, tetapi akan lebih baik jika ada akses ke semua terminal yang ada di panel.
2) Ya ekstensi tidak mengetahui tentang status terminal tetapi saya melacak proses anak dari terminal._id oleh PID, Jadi saya tahu kapan terminal dibuang oleh pengguna (proses anak pergi ke 0). Jadi apa yang saya minta untuk tidak _menghapus_ id proses ini di masa mendatang, tidak yakin apakah ini perlu untuk publik). Jadi saya bahkan melacak jumlah proses anak yang berjalan dan jika jumlahnya berkurang, ini mungkin berarti ada yang salah atau tugas telah selesai berjalan, maka saya tunjukkan terminal ini, cukup berguna.
3) Jadi saya tidak menggunakan saat ini membuang.

Apa yang sebenarnya kurang adalah akses ke keluaran proses, yang akan memungkinkan untuk membuat analitik yang lebih berguna (misalnya melacak beberapa keluaran kesalahan / pengecualian) dan menunjukkan terminal kepada pengguna.

Ekstensi sebenarnya siap dipublikasikan, mungkin akan melakukannya pada hari-hari.

@whitecolor saat ini hanya ada akses ke terminal yang dibuat melalui API, ini adalah kasus yang cukup menarik untuk mengubahnya.

Sneaky sneaky mengintip terminal._id : wink: mungkin tidak akan berubah dalam waktu dekat, tetapi segera setelah acara yang dapat Anda dengarkan ditambahkan, Anda harus memanfaatkannya karena ini akan menjadi API stabil resmi. Pelacakan dan keluaran proses anak akan dieksplorasi di # 11422 (Anda dapat mengikuti masalah yang terkait dengan itu untuk beberapa diskusi tentang topik).

Dengan perintah terminal bernama Anda juga menyediakan solusi untuk # 10023: smiley:

Kerja bagus, berharap untuk mencobanya!

@whitecolor FYI, jadi saya berbohong dan terminal._id mungkin akan berubah di v1.6 menjadi beberapa ID acak, bukan PID. Saya berada di tengah-tengah refactor besar untuk memisahkan panel terminal dari proses lebih banyak (sehingga mereka bisa ada tanpa panel # 11275) dan saya rasa saya tidak bisa menyimpannya di sana sayangnya.

@whitecolor Anda dapat mencoba window.onDidCloseTerminal (# 10925) di orang dalam besok. Ini seharusnya lebih mudah daripada melacak PID.

Saya ingin melihatnya seperti InteliJ. Sampai saat ini, saya menambahkan keybings pribadi ini:

[
    {
        "key": "ctrl+pageup",
        "command": "workbench.action.terminal.focusNext",
        "when": "terminalFocus"
    },{
        "key": "ctrl+pagedown",
        "command": "workbench.action.terminal.focusPrevious",
        "when": "terminalFocus"
    }
] 

Tombol pintas keyboard yang sama untuk menavigasi antar tab, tetapi jika kursor fokus pada terminal, beralih antar terminal.

Split view pada tab terminal akan sangat berguna;

Saat ini saya mencoba melakukan pembuktian konsep dengan instance server dan menjalankan permintaan melalui terminal konsol lain.

Ada kemajuan dalam hal ini?

@Tokopedia
tmux bisa menjadi solusi tetapi bekerja dengan baik di dalam terminal terintegrasi VSCode (akhirnya di windows).

@MeirionHughes inilah masalah untuk fitur itu https://github.com/Microsoft/vscode/issues/7504. Tidak ada kemajuan sejauh ini, terakhir kali saya mendorongnya, saya mendapat dorongan dari tim. Lebih banyak: +1: tentang masalah itu, semakin baik.

@Tyriar Anda dapat mengatakan ini masalah ini juga meminta pemisahan, seperti pada gambar ketiga yang secara eksplisit menunjukkannya. Ditambah masalah ini memiliki 112 👍 :)

@MeirionHughes komentar pertama (milik saya) mengatakan:

Mari kita lacak pemisahan terminal di # 7504

Alasannya adalah agar pembahasan untuk 2 fitur yang berbeda tidak menimbulkan gangguan satu sama lain.

Oh guys, tolong bantu karena ini fitur UI yang sangat penting, terkadang itu membuat crz menangani dropdown untuk beralih konsol, terima kasih banyak;)

1 untuk cycle terminal keybindings.

@whitecolor _darn! _ Saya pikir tmux dalam terminal terintegrasi adalah solusi cerdas saya sendiri, tetapi Anda mengalahkan saya untuk itu. Berfungsi dengan baik untuk saya (tidak ada mouse mode ) tetapi panel berfungsi dengan baik:

screen shot 2017-02-06 at 2 12 51 pm

Mode mouse berfungsi dengan baik untuk saya dengan tmux.

Bagaimanapun, saya pikir ini adalah tambahan yang bagus

Saya pikir ini akan sangat berguna. Tetapi menurut saya itu tidak terbatas pada terminal, tetapi juga menyertakan tab "Masalah", "Output" dll., Sehingga Anda dapat memiliki "Terminal", "Masalah" dan editor terbuka dalam satu tampilan.

Saya juga hanya akan memberi +1 pada pengikatan tombol untuk berputar melalui terminal. Saya benci harus menggunakan mouse untuk mengklik dropdown kecil itu, terutama pada laptop dengan track pad.

Beri saya pengikatan kunci untuk menggilir terminal dan saya rasa saya bisa melakukannya tanpa pemisahan / tab

@ psimoneau22 ini adalah keybinding yang saya gunakan untuk itu:

{ "key": "ctrl+shift+j",    "command": "workbench.action.terminal.focusNext" },
{ "key": "ctrl+shift+k",    "command": "workbench.action.terminal.focusPrevious" },

Kami akan segera membahas pemisahan.

Saya tidak percaya betapa bagus dan hebatnya editor ini. Ini akan menjadi tambahan yang sangat kuat untuk hanya membuka vscode dan tidak ada yang lain selama sesi pengkodean.

TL; DR; Gunakan beberapa jam untuk mengambil tmux.

Saya senang dengan tmux di terminal saya (mode mouse berfungsi seperti pesona). Aku butuh satu hari untuk belajar. Saya telah bermain dengannya sebelumnya beberapa kali, tetapi saya menghabiskan kemarin untuk mengaturnya seperti bos. Saya baru saja melakukan tmux -CC di iTerm - yang meluncurkan jendela terminal. Kemudian lakukan tmux a di terminal vscode untuk menghubungkan ke sesi itu - ini adalah saya mendapatkan sesi terminal yang persisten sehingga saya selalu bisa kembali dengan sesi saat memulai ulang vscode (perbarui Vscode, instal ekstensi). Ini adalah fitur yang jauh lebih baik bagi saya daripada memiliki tab atau split di terminal. Harap simpan lampu Vscode. Atom adalah pelajaran untuk dipelajari (saya berasal darinya). TMUX FTW :)

Pendekatan yang sama ini juga berhasil untuk saya di Mac / cygwin / windows dan seharusnya bekerja cukup banyak di mana pun Vscode berjalan.

TL; DR;

alangkah baiknya memiliki tab untuk Terminal Terpadu daripada menu tarik-turun. Adakah kesempatan untuk melihat fitur ini di masa mendatang?

Mempertimbangkan pintasan ctrl + shift + ` dan ctrl + ` Saya yakin pengaturan ini lebih masuk akal.

  {
        "key": "ctrl+shift+right",
        "command": "workbench.action.terminal.focusNext"
    },
    {
        "key": "ctrl+shift+left",
        "command": "workbench.action.terminal.focusPrevious"
    }

@leocaseiro @Tyriar @ psimoneau22 Kecuali Anda menggunakan Mac, ada baiknya menambahkan opsi 'kapan' ke opsi tersebut sebagai ctrl + shift + left dan ctrl + shift + right digunakan untuk memilih potongan teks di editor.

    {
        "key": "ctrl+shift+j",
        "command": "workbench.action.terminal.focusNext",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+shift+k",
        "command": "workbench.action.terminal.focusPrevious",
         "when": "terminalFocus"
    }

atau

    {
        "key": "ctrl+shift+right",
        "command": "workbench.action.terminal.focusNext",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+shift+left",
        "command": "workbench.action.terminal.focusPrevious",
         "when": "terminalFocus"
    }

Berikut adalah 2ct saya untuk fitur yang sangat diinginkan ini (maaf jika beberapa poin telah disebutkan)

Kasus penggunaan
Alasan mengapa saya menggunakan banyak terminal dalam kasus pertama biasanya adalah:

  • Saya perlu bekerja di dua direktori secara paralel dan tidak ingin cd maju dan mundur sepanjang waktu
  • Saya perlu bekerja dengan dua terminal berbeda (mis. Bash vs powershel vs cmd atau lokal vs remote / ssh)
  • Saya ingin memonitor output dari dua program berbeda secara paralel

Perhatikan bahwa hanya dalam kasus ketiga saya memerlukan tampilan terpisah dari terminal. Dalam kebanyakan kasus lain, saya lebih suka memiliki satu terminal yang menggunakan ruang sebanyak mungkin.

UI
Mengapa tidak memperluas tab saat ini (mis. Debugging, Ouput, Terminal ...) dan mengizinkan tambahan "Terminal1, Terminal2, Terminal3 ....)

Tab vs Drop-Down

  • Anda melihat semua tab yang tersedia
  • Lebih mudah (bagi saya) untuk mengingat terminal mana yang melayani tujuan apa jika mereka diwakili oleh lokasi lokasi visual yang berbeda (misalnya tab ke-3)

tl; dr

Saya sangat setuju dengan @MikeGitb , saya selalu menggunakan lebih dari 1 terminal sekaligus. Dropdown untuk terminal di VS Code saat ini sulit untuk melihat tab terbuka. Akan sangat luar biasa memiliki tab untuk terminal terintegrasi. Terima kasih.

Satu Ide Gila: mengapa tidak memberi terminal status yang sama sebagai tab editor biasa? Akan sangat berguna jika seseorang ingin melihat lebih dari beberapa baris pada saat yang bersamaan.

Satu Ide gila

Tidak gila, ini cara kerja vim / neovim.

Tidak gila, ini cara kerja vim / neovim.

Seperti halnya banyak IDE lainnya;).

Maaf, intro itu sebenarnya bermaksud ironis.

@Tyriar apakah ada fitur untuk memungkinkan panel vertikal terminal di samping kode Anda atau ini tidak akan diizinkan?

Akan sangat senang memberi terminal status yang sama dengan tab editor - ComEmu dan HyperTerminal keduanya memiliki masalah serius yang mencegah penggunaannya saat ini (ConEmu memiliki masalah kontras yang tidak dapat diperbaiki karena pengelola ingin mempertahankan dukungan XP, HyperTerminal tidak dapat melakukannya Ctrl + C di PowerShell dan dasar lainnya). Memiliki vscode sebagai terminal tab yang berfungsi akan sangat bagus.

Saya juga terus menonton ketika akan mempublikasikan tampilan tab dari terminal terintegrasi alih-alih dropdown.

Menu dropdown agak tidak nyaman digunakan. Juga memiliki lebih dari satu terminal terbuka akan sangat bagus.

Untuk orang-orang yang ingin mencoba tmux sambil menunggu dukungan tab, saya membuat intisari untuk memulai penyiapan. Ini memiliki dukungan mouse yang diaktifkan secara default dan menggunakan binding sederhana untuk membagi terminal.
https://gist.github.com/cybertim/e8b42c8cd8a5bebaa3eb8cec17a2746f

Terima kasih @cybertim , file bagus! Saya sudah menggunakan tmux tetapi file ini berguna.

Alasan saya secara pribadi akan sangat tertarik pada beberapa terminal pada posisi berbeda di dalam jendela adalah semoga ini akan mengarahkan cara untuk mengimplementasikan RStudio / Jupyter Lab seperti lingkungan dalam VSCode.

Secara pribadi saya ingin semuanya menjadi tab dan kemudian memberikan kemampuan untuk membagi panel secara vertikal dan horizontal tanpa batas. Anda juga dapat memberikan kemampuan untuk menyematkan tab untuk menyimpan alat yang paling umum, misalnya Terminal, Explorer, dan Pencarian.

Editor lama memiliki tombol simpan, batalkan, ulangi di sepanjang toolbar panjang di bagian atas - VSCode tidak - mengapa? Karena diharapkan orang akan menggunakan keyboard tersebut. Kami programmer. Terminal sebelumnya, terminal berikutnya semua dapat diikat ke tombol pintas - gunakanlah. Saya katakan kita menutup masalah ini dan melanjutkan dengan yang penting.

Selanjutnya, masih ingin tab? Panel? Berpisah?

Saya pikir banyak orang di sini meminta fitur yang berlebihan untuk VScode. Jika mereka hanya mencoba tmux , mereka tidak akan meminta ini. Terminal diberikan kepada kami. Menggunakan tmux, ini mendukung tab. Anda membutuhkan waktu maksimal beberapa jam untuk mempelajari tmux. Ada tab, windows, split, dan banyak lagi, jika Anda perlu me-restart VSCode Anda cukup mengetik tmux -a setelah restart untuk langsung kembali ke sesi tmux Anda. Setelah mengaktifkan mode mouse (hanya satu baris di konfigurasi), Anda bahkan dapat mengubah ukuran panel, klik tab untuk pergi ke tab itu. Saya menentang fitur ini di VSCode. Itu hanya akan memperlambat kinerja. Pertahankan VSCode seringan mungkin - kami tidak menginginkan Atom lain. Biarkan tmux melakukan pekerjaan berat! Seperti yang Anda lihat di bawah, saya memiliki split dan juga jika Anda melihat lebih dekat di bagian bawah, saya memiliki dua tab - python & fish . Dan ya, di kiri bawah, saya menggunakan karyawan Google di baris perintah ke Google: D

screen shot 2017-05-02 at 5 26 33 pm

@piggyslasher Saya tidak melihat bagaimana fitur ini dapat membuat vscode lebih lambat.
Vscode sudah mendukung memiliki lebih dari satu contoh terminal. Fitur ini hanya tentang mengubah pemilih dropdown menjadi fitur tab yang mudah-mudahan lebih baik untuk digunakan.

Dengan fitur ini, Anda masih dapat melanjutkan menggunakan satu instance / tab terminal dengan tmux, dan tidak mengharapkan perubahan kinerja dibandingkan sekarang.

Vscode adalah editor multi platform. Memberi tahu orang-orang untuk menggunakan tmux berarti membatasi orang-orang itu ke lingkungan di mana tmux tersedia. Juga tmux memiliki kurva belajar besar yang benar-benar berlebihan untuk fitur sesederhana ini

Saran @piggyslasher menarik meskipun jika Anda memikirkannya lebih seperti 'lakukan dengan cara tmux'.

Ini adalah sesuatu yang sudah lama saya pikirkan. Tmux memiliki tabs dan setiap tab dapat dibagi menjadi panes sebanyak yang diinginkan. Sebaliknya editor memiliki panes dan kemudian setiap pane dapat memiliki tabs .

Saya lebih suka cara tmux karena seperti 'tata letak terminal ini terkait, dan kemudian kami beralih ke tab lain dari terminal terkait'

Untuk sesuatu seperti pengembangan react / angular, saya bisa melihat ini berguna jika Anda memiliki 'panel' JS / HTML / CSS / Test yang terbuka untuk setiap komponen, dan 'tab' untuk setiap komponen yang Anda kerjakan.

Saya tertarik untuk melihat apakah mungkin melakukan sesuatu seperti itu di plugin. Origami untuk Sublime sudah dekat, tetapi masih 'panel penuh tab' bukan 'tab penuh panel'.

Ada banyak kekhawatiran tentang ruang lingkup dan skala memperkenalkan manajemen konsol melalui tab dan mekanisme UI lainnya dan saya hanya ingin menunjukkan bahwa jika masalah yang sedang diselesaikan didefinisikan dengan sangat jelas, lingkup dan skala ledakan dan masalah harapan pengguna akan terjadi. untuk dimitigasi karena keanggunan solusi. Definisikan masalah dengan sangat jelas dan solusinya akan menjadi lebih jelas, dan logikanya akan lebih konsisten di seluruh UI dan UX. Anda tahu, pengertian "itu langsung bekerja" yang kita semua senang gunakan dan ciptakan.

Juga, akan lebih baik untuk memiliki daftar berpoin atau bernomor dari solusi berbeda yang ditawarkan di utas ini dan masalah yang teridentifikasi (mungkin sebagai peluru / angka yang diindentasi). Utas seperti ini dapat berputar-putar tanpa hal-hal ini diperbarui di pusat, lokasi yang dikurasi, atau mungkin di pos awal.

Tampak bagi saya bahwa semua orang setuju bahwa beberapa bentuk manajemen konsol diperlukan, di luar apa yang saat ini ada. Hanya saran untuk memecahkan masalah skala: berikan opsi bagi pengguna untuk memasang konsol ke editor, atau sekelompok editor. Izinkan juga konsol untuk dipisahkan, tetapi dengan cara apa pun yang ditetapkan pengguna sebagai default di setelan. Memasang konsol ke konteks editor akan membantu mengurangi pemijahan konsol yang berlebihan. Plus, ini akan memungkinkan konsol dari satu editor disembunyikan ketika editor lain dipilih, menjaga kompleksitas UI tetap rendah. Jika konsol tidak terkait dengan editor, hal-hal bisa lepas kendali dan orang-orang akan lupa konsol mana yang melakukan apa, dll.

Pertimbangkan untuk menambahkan setelan yang dapat dikonfigurasi pengguna yang memungkinkan konsol yang ditentukan untuk editor disimpan dalam aplikasi, berdasarkan nama dan lokasi file (atau, mungkin berdasarkan beberapa pengenal lain yang lebih andal dan unik dalam properti file di tingkat sistem).

Argumennya dapat dikatakan bahwa level penyempurnaan ini mendekati level IDE tetapi pembuatnya telah mengatakan bahwa VSCode membawa beberapa hal baik dari IDE ke dalam ruang editor. Anda dapat memperkenalkan solusi konsol yang tidak terasa berat atau rumit, yang hanya berfungsi sambil menghadirkan UX yang sangat baik.

Jika ini tidak masuk akal, atau jika saya menyatakan yang sudah jelas, beri tahu saya.

@ nick-walt saat Anda mengatakan:

menyediakan opsi bagi pengguna untuk memasang konsol ke editor, atau sekelompok editor.

Apakah Anda menyarankan kemampuan terminal untuk mengaitkan instance shell dengan file terbuka tertentu?

Kedengarannya seperti Anda terlalu memperumitnya. Tentu saja tetap berpikir di luar kotak tentang itu, tetapi dari apa yang saya lihat pada fitur serupa, tim vscode suka menjaga agar dampak fitur kecil seperti ini cukup minimal. Jadi saya berani bertaruh mereka mencari solusi paling sederhana (namun tetap efektif) untuk membuat orang bahagia.

Poin paling mendasar dari masalah ini adalah bahwa menu dropdown tidak bagus untuk beralih antar hal, dan tab itu adalah alternatif yang cukup bagus - itulah mengapa kebanyakan hal menggunakan tab: editor, IDE, browser, dll. Saya pikir semua orang di sini akan setuju bahwa pada dasarnya segala bentuk tab lebih disukai daripada tarik-turun.

Selain bagian paling dasar dari cara kita beralih di antara instance shell, ada minat juga untuk memungkinkan beberapa cara agar lebih dari satu instance terlihat pada saat yang bersamaan. Baik melalui panel di bagian terminal di bagian bawah, atau juga membuat tab terminal dapat dipertukarkan dengan tab editor dalam beberapa cara, atau solusi lain. Bagian ini lebih rumit, dan mungkin kurang ada kesepakatan ke mana harus pergi. Terutama mengingat apa yang baru saja ditunjukkan @sorahn tentang panel-inside-tabs vs tabs-inside-panes.

Secara pribadi saya pikir ada cukup dukungan untuk hanya menghapus dropdown (karena itu benar-benar tidak bagus) dan menggantinya dengan tab, dan mengkhawatirkan hal-hal yang lebih maju sesudahnya.

Lebih dari setahun yang lalu @ bgashler1 mengatakan ini:

Ketakutan yang saya miliki dengan memperkenalkan tab dan membelah terminal adalah bahwa itu mungkin terlihat seperti grup editor. Saya tidak ingin pengguna kecewa karena mereka tidak dapat menyeret editor ke terminal atau terminal ke dalam grup editor. * Selain itu, memperkenalkan ini mungkin lereng licin dalam manajemen jendela, seperti mengapa kami bahkan memiliki horizontal khusus panel untuk hal-hal seperti ini di tempat pertama. Mengapa tidak membiarkan terminal hidup di mana pun yang diinginkannya, daripada mereplikasi begitu banyak fungsi di UI khusus.

Jadi mungkin saat ini yang terbaik adalah mempertimbangkan tab yang terlihat berbeda dengan tab editor, yang menunjukkan bahwa mereka _tidak_ dapat dipertukarkan dengan tab editor, untuk menghindari kebingungan?

Saya setuju, Tab adalah solusi yang cukup bagus untuk memilih konsol yang berbeda.

Saya pikir cara untuk mengaktifkan fungsionalitas mengaitkan konsol dengan editor hanya dengan mengubah pengaturan pengguna. Setelah diaktifkan, membuka konsol saat editor dipilih dapat membuat pengaitan. Sesimpel itu.

UI kemungkinan besar adalah ketika editor baru (file) dipilih di bagian atas aplikasi, Tab konsol di bagian bawah berubah saat editor berubah. Ini sangat sederhana dan intuitif.

Saya pikir itu hanya akan menjadi lebih kompleks jika mereka menambahkan kemampuan untuk mengaitkan konsol individu dengan lebih dari satu editor, berdasarkan beberapa konteks pengguna, seperti:

  • lokasi direktori
  • proyek
  • jenis file (mungkin ketika file berada di lokasi yang sama)
  • pengelompokan editor (ditentukan pengguna)
  • beberapa abstraksi lainnya

Pengalaman ini adalah bahwa konsol yang ditentukan tetap sama, editor mana pun dalam konteks yang dipilih (atau, tetap sama karena pengguna ingin semua konsol tersedia untuk semua editor).

Bagaimana UI disajikan adalah di mana hal-hal perlu menjadi kreatif untuk menghindari rasa kompleksitas dan membuatnya tetap intuitif, cepat dan mudah digunakan. Dengan desain UI yang bagus, kerumitan hanya ada untuk tim yang membuat fitur :)

Untuk memperkuat asosiasi tab konsol dengan editor, panel yang berisi tab konsol akan diberi label dengan jelas dengan nama editor.

Dan setiap tab dapat secara otomatis menampilkan jenis konsol yang dimuat, seperti Git, Node, CMD, Powershell ... daripada menampilkan Terminal 1, Terminal 2, dll (seperti ditunjukkan oleh

Ini akan memungkinkan pengguna untuk memilih secara langsung konsol yang mereka inginkan tanpa mencari di tab yang mencari perintah git atau PowerShell.

Opsi lainnya adalah menyediakan mesin tab dasar di inti aplikasi dan memungkinkan pengguna menambahkan ekstensi pilihan mereka untuk menambahkan lebih banyak kemampuan ke manajemen konsol. Pada titik tertentu, fitur yang sering digunakan dapat dimasukkan ke dalam aplikasi inti.

Jika saya memahami Anda dengan benar, saya sangat melarang menghubungkan terminal dengan jendela editor. Sebagian besar waktu saya tidak memiliki hubungan tetap antara tab editor dan terminal dan ketika saya melakukannya pasti bukan pemetaan 1: 1 (biasanya bahkan tidak 1: N).

@MikeGitb Saya akan menebak bahwa, tergantung pada bobot preferensi pengguna, asosiasi default editor dengan pengaturan konsol dapat diaktifkan atau dinonaktifkan.

Beberapa mungkin ingin menggabungkan keduanya, tergantung pada apa yang mereka lakukan dan konsol apa yang mereka gunakan. Ini hanyalah perbaikan dari masalah UI / UX yang harus diselesaikan oleh pembuatnya. Sama seperti untuk tantangan UI / UX apa pun.

Kasus penggunaan untuk editor kontekstual / konsol UX adalah:

  • tanpa konteks (tidak ada konsol yang terkait dengan editor tertentu)
  • konteks campuran (beberapa konsol terkait, beberapa tidak)
  • semua konteks (semua konsol yang terkait dengan editor)

BTW, saya menyarankan asosiasi konsol dengan editor sebagai opsi untuk meminimalkan proliferasi tab konsol (dan kebingungan / overhead yang tidak diinginkan), yang merupakan kekhawatiran yang disuarakan oleh beberapa orang. Dengan editor kontekstual / konsol UX, konsol terkait kemungkinan besar akan disembunyikan segera setelah editor dalam konteks lain dipilih. Pengguna selalu hanya melihat apa yang relevan dengan editor yang dipilih.

Seperti biasa, implementasi UI akan membuat atau menghancurkan hal semacam ini. Tim VSCode telah melakukan pekerjaan yang luar biasa dengan UI dan tidak ada alasan untuk berpikir bahwa mereka tidak dapat menemukan cara untuk mengimplementasikan pengalaman manajemen konsol yang lebih canggih tanpa membuat semuanya terasa rumit dan kelebihan beban.

Seperti yang telah kita semua alami sebelumnya, dan semakin banyak dengan perangkat lunak yang lebih baru, sangat mungkin untuk mengekspos pengguna ke tingkat kerumitan dan kecanggihan yang jauh lebih tinggi sekaligus membuat pengalaman menjadi lebih mudah dan terasa lebih sederhana.

Hanya untuk memahami kasus penggunaan Anda: bolehkah saya bertanya, jenis operasi apa yang Anda lakukan di terminal, yang terikat ke file tertentu, berbeda dengan project / direktori?

Kasus penggunaan tipikal saya menggunakan git, menyusun proyek saya, menjalankan biner dan melihat beberapa keluaran jejak. Semuanya tidak bergantung pada file mana yang saat ini terbuka, tetapi saya menggunakannya terutama untuk proyek c ++ atau pengeditan file tunggal, jadi area lain mungkin memerlukan alur kerja yang berbeda.

Cukup yakin hampir semua orang menggunakan contoh terminal secara independen dari tab editor. Fitur seperti itu akan lebih baik sebagai ekstensi.

Ya, saya setuju dengan memperluas pengalaman konsol dengan ekstensi. Mungkin cara terbaik untuk membuka area ini untuk pengembangan.

Membuat mesin konsol di VScode untuk dibangun semua orang akan menjadi eksperimen yang menarik.

Berikut adalah klip cara kerja Cloud9 IDE :

ezgif-1-a2ab27787f

Tampaknya memiliki apa yang tampaknya banyak dari kita cari: Setiap tab baru dapat berupa editor atau terminal, dan tab apa pun dapat dipindahkan dan dibagi secara horizontal atau vertikal.

@plrrr. Itu luar biasa! Sesuatu ke arah itu akan sangat menyenangkan.

@plmrry pertanyaan apakah kita akan memiliki sistem panel yang sangat fleksibel seperti itu masih terbuka. Saya pribadi suka bagaimana panel diperbaiki, ini membuat perintah terminal sangat jelas apa yang akan terjadi; terminal fokus akan selalu membuka satu ruang terminal dan memfokuskan terminal aktif.

Jika ada beberapa terminal di tab editor, beberapa di latar depan, beberapa di latar belakang, maka pertanyaan tentang apa yang dilakukan perintah terminal tertentu tidak begitu jelas dan tidak akan seintuitif.

dapatkah perintah terminal hanya menargetkan yang terakhir difokuskan? dengan cara yang sama seperti cmd + shift + t akan menargetkan tab yang terakhir ditutup

@btoo mungkin itulah yang akan dilakukannya di dunia seperti itu. Itu adalah perubahan yang sangat radikal dalam cara kerja VS Code.

Saya berasal dari PHPstorm dan kurangnya tab terminal benar-benar membuat frustrasi, semua produk Brainstorm memiliki tab terminal, ini adalah fitur yang sangat berguna.

Memang fitur yang berguna, saya akan meminta pengembang untuk menambahkannya, ini akan membuat hidup lebih mudah di mana kita perlu memantau lebih dari 2 hal pada saat yang bersamaan, saya sangat suka ide @plmrry

+1
Tab di terminal lebih ramah UX daripada memilih dan tidak memakan banyak ruang

+1

Ini adalah bagian dari alasan saya masih menggunakan layar terpisah iterm dan cmder karena saya dapat melihat lebih dari satu sekaligus. Masuk akal bahwa vscode saat ini dapat menjalankan beberapa sekaligus, yang menambahkan kemampuan untuk menampilkan keduanya pada saat yang sama (apakah itu dibagi horizontal atau tab tidak boleh mengganggu kinerja).

Jika akan ada masalah kinerja dengan itu maka vscode juga akan membeku jika saya menjalankan server npm run di satu tab dan mongod di tab lain (atau apa pun beberapa perintah yang mungkin perlu dijalankan seseorang).

Pembaruan kecil tentang ini: Saat ini saya sedang sibuk membuat terminal dapat diakses (https://github.com/Microsoft/vscode/issues/8339), setelah itu bagian utama berikutnya yang akan saya kerjakan mungkin akan menjadi pemisahan terminal (https://github.com/Microsoft/vscode/issues/7504) yang merupakan percabangan dari masalah ini (dan kemungkinan ini adalah apa yang diinginkan oleh banyak orang yang melakukan upvoting ini). Ini ada di peta jalan https://github.com/Microsoft/vscode/wiki/Roadmap#terminal

@AnthonyMichaelc Tidak ada masalah kinerja dengan menampilkan banyak, terminal sangat cepat setelah peningkatan terbaru .

(pemisahan) mungkin adalah apa yang diinginkan oleh banyak orang yang mendukung ini

@Tyriar Saya memberi suara positif pada tab karena saya ingin tab, bukan membelah. Saya menduga sebagian besar orang lain juga bersungguh-sungguh dengan apa yang mereka pilih - terminal sempit secara vertikal atau horizontal tidak cocok untuk saya.

... Saya baru saja membaca semua itu, dan saya tidak percaya saya melewatkan ide ini:

Mengapa tidak menambahkan tab tambahan ke bilah tab yang ada, saat terminal baru dibuka?
Problems | Output | Debug Console | Terminal 1 | Terminal 2 | Terminal 3 ...
... juga, konsol debug tidak terlalu berguna jika Anda tidak benar-benar menggunakan debugger .. hanya sebagai tambahan.

(dan mungkin yang diinginkan oleh banyak orang yang mendukung ini)

Saya hanya akan menempelkan ini .... (posting pertama dalam topik ini)

Selain komentar @ericblade , izinkan saya melihat setidaknya 2 panel (masalah, keluaran, konsol, terminal, ...) pada saat bersamaan!
Misalnya saat men-debug server, saya ingin mengamati output dari beberapa layanan lain atau pengamat file yang membangun klien saya tanpa berpindah tampilan sepanjang waktu, bahkan melalui jalan pintas keyboard.
Saya akan dengan senang hati menyambut terminal terpisah (juga pada Windows;) sebagai permulaan, tetapi tab fleksibel yang dapat ditempatkan di panel kiri / tengah / kanan akan meningkatkan "dek observasi" dari vscode secara signifikan tanpa mengacaukan UI.

@PixelT Gambar pertama dalam posting yang Anda kutip adalah dengan tab yang ditambahkan, persis seperti judulnya. Mungkin mengajukan PR terpisah dan menautkannya di sini untuk dipecah?

@mikemaccana harap baca dengan memahami posting saya sekali lagi, karena saya melihat Anda tidak memahaminya + saya tidak menghapus apa pun:]

@PixelT Anda benar, saya keliru mengira Anda telah menghapus gambar - maaf. Artinya: judul dan saran pertama adalah tab, bukan pemisahan, dan masalah terpisah untuk pemisahan akan lebih baik.

Bisakah kami memiliki opsi untuk memiliki tab tetapi mematikannya secara default?

Pratinjau pemisahan telah mendarat di Insiders , lihat https://github.com/Microsoft/vscode/issues/7504#issuecomment -365683609 untuk pembaruan lengkap.

kapture 2018-02-14 at 9 12 17

Saya pikir ini jelas merupakan langkah ke arah yang benar. Saya yakin seseorang akan mengeluh mengapa saya tidak bisa memasang 15 terminal tetapi bagi saya memiliki ini dan akan hebat. Jika mengerjakan sesuatu seperti tumpukan rata-rata saya dapat memiliki satu terminal ganda hanya untuk nodemon dan mongos dll dan kemudian membuka pasangan terminal lain untuk menjalankan ng serve dan menghasilkan perintah.

Sekarang jika versi vscode stabil memiliki opsi ini dan permintaan fitur lainnya memiliki tata letak grid yang telah saya tunggu-tunggu untuk semua impian akan menjadi kenyataan haha.

Catatan samping: Saya perhatikan hanya dari penggunaan selama beberapa menit jika saya mencoba untuk beralih bolak-balik opt / alt + cmd / ctrl dengan cepat fokus sepertinya sedikit di belakang. (Mungkin hanya aku)

@Anony

Saya yakin seseorang akan mengeluh mengapa saya tidak bisa memasang 15 terminal tetapi bagi saya memiliki ini dan akan hebat.

Rencananya sebenarnya untuk mengizinkan sebanyak yang Anda inginkan, saya hanya memecahkan masalah untuk n = 2 sejauh ini.

tata letak grid

Kami secara aktif mendiskusikan ini sekarang, bahkan mendapat tempat di rencana iterasi Feb https://github.com/Microsoft/vscode/issues/43361

Catatan samping: Saya perhatikan hanya dari penggunaan selama beberapa menit jika saya mencoba untuk beralih bolak-balik opt / alt + cmd / ctrl dengan cepat fokus sepertinya sedikit di belakang. (Mungkin hanya aku)

Saya belum melihat ini, tetapi saya akan memperhatikan kelambatannya.

@Anony

Jika mengerjakan sesuatu seperti tumpukan rata-rata saya dapat memiliki satu terminal ganda hanya untuk nodemon dan mongos dll dan kemudian membuka pasangan terminal lain untuk menjalankan ng serve dan menghasilkan perintah.

Memiliki banyak terminal dan editor secara bersamaan sangatlah nyaman. Dalam kehidupan sehari-hari saya memiliki terminal pertama untuk server pengembangan, kedua untuk pengujian unit dan terkadang ketiga untuk git.

Ada cara hacky untuk mengarsipkannya di terminal cmder untuk Windows dengan membuka VSC sebagai salah satu tab terminal (di sini) Saya tidak sabar menunggu solusi asli untuk Visual Studio Code, karena ada beberapa masalah dengan pintasan saat menggunakan VSC dan Cmder di cara ini.

Visual Studio Code + cmder multiple tabs

@Tyriar seperti yang saya lihat, topik ini tentang tab di terminal, tidak ada pemisahan ...?

@PixelT jelas terkait. Banyak orang telah menyatakan dalam masalah ini tentang dapat melihat banyak terminal pada saat yang sama yang akan dipecahkan oleh pemisahan untuk saat ini, sehingga mereka akan merasa berguna.

Saya tidak setuju dengan Anda - topik ini terutama mengamati & mendiskusikan orang-orang yang menginginkan tab di terminal, untuk membelah terminal ada topik lain: https://github.com/Microsoft/vscode/issues/7504 yang Anda buat :)

Terminal Tabs & Splitting adalah standar saat ini di hampir setiap IDE modern.

Beralih ke Insiders build untuk menguji ini, bekerja dengan luar biasa, terima kasih @Tyriar !

masih tidak ada yang terjadi tentang tab di terminal ... 😕

@ PikselT Sudahkah Anda mencoba versi orang dalam yang memiliki terminal ganda? Dari apa yang mereka katakan, mereka berencana membuatnya sehingga Anda dapat membuka sebanyak mungkin terminal dalam tata letak itu seperti yang Anda inginkan, tetapi saya yakin versi orang dalam saat ini mengizinkan 2 dengan perintah: cmd / ctrl + d Saya percaya

@Morkowski saya melihat apa yang Anda lakukan. Ya saya memiliki windows dan laptop osx jadi ketika saya menggunakan komputer windows saya menggunakan cmder seperti itu, ketika di komputer osx saya menggunakan iterm dan membuat setidaknya 2 hingga 3 di dalam kotak layout dan 4 saat bekerja dalam aplikasi stack rata-rata.

Hai @Tyriar sedikit umpan balik - saat mengubah ukuran konsol menggunakan tombol Maximize Panel Size atau Restore Panel Size (atau pintasan keyboard), lebar panel konsol dilupakan, dan lebar setiap panel adalah setel ulang ke jumlah yang sama.

Saat mengubah ukuran konsol ke atas / bawah menggunakan mouse, lebarnya diingat.

Demikian pula, lebar dilupakan saat menyembunyikan atau menampilkan bilah sisi kiri.

Akhirnya, lebar dilupakan saat menambah atau menghapus panel - meskipun ini yang paling bisa dimengerti.

Semoga ini membantu!

@jamesjryan ada masalah yang diperbaiki di orang dalam terbaru untuk 2 orang pertama yang Anda sebutkan https://github.com/Microsoft/vscode/issues/45074

Demikian pula, lebar dilupakan saat menyembunyikan atau menampilkan bilah sisi kiri.

Saya tidak bisa melaporkan yang terbaru, buat masalah jika Anda melihatnya.

Akhirnya, lebar dilupakan saat menambah atau menghapus panel - meskipun ini yang paling bisa dimengerti.

Ya ini seperti yang dirancang 🙂

Seseorang sedang menulis tentang terminal terpisah, bukan tab terminal di sini lagi. Bukan itu yang ingin kami lihat saat mendapat pemberitahuan dari tiket ini :(

7504

@Tyriar diperbarui - berfungsi seperti yang dijelaskan, terima kasih!

@KillyMXI itu kemajuan menuju tujuan akhir, dan implementasi yang sangat berguna bahkan dalam bentuknya saat ini.

@isidorn Saya ingin tahu apakah Anda telah memikirkan bagaimana awalnya kami akan mendukung sesuatu seperti ini. Ketika saya menambahkan tab di terminal tepat setelah terminal ditambahkan, saya perlu kembali karena semua orang menentang tab di tab, bagaimana jika kita membuat tab judul panel seperti ini:

screen shot 2018-03-06 at 12 22 50 pm

Saya tidak begitu tahu bagaimana menangani judul yang terkadang besar dan perlu mengatakan terminal di sini untuk membedakannya dari yang lain. Karena itu, ini akan menjadi pengaturan khas saya dengan (dua tab, salah satunya memiliki belahan) dan mudah dipasang di layar laptop saya ketika dimaksimalkan, bahkan tanpa menyembunyikan judul panel lainnya.

Saya pikir permainan akhir memberi pengguna fleksibilitas untuk meletakkan terminal di mana pun mereka inginkan, tetapi mungkin ini adalah solusi sementara yang baik?

@jamesjryan Saya tidak bisa melihat solusi Tyriar sebagai kemajuan menuju tab. Tampak sepenuhnya hal ortogonal bagi saya.

Ada banyak hal berguna di sekitar, tetapi mereka memiliki tempat yang tepat. Tempat yang tepat untuk terminal terpisah adalah tiket yang berbeda.

Akhirnya kita kembali ke tab.

Hal serupa telah diusulkan di atas, sebenarnya: https://github.com/Microsoft/vscode/issues/10546#issuecomment -359632932
Itu hal yang paling jelas saat mengganti dropdown dengan daftar terminal.

Saya akan mencoba

  • sejajarkan tab terminal ke kanan;
  • atau tambahkan garis vertikal sebelum terminal;
  • atau sejajarkan ke kanan dan tampilkan garis vertikal saat mendekati item di sebelah kiri.

Saya lebih suka menghindari menempatkan kata "Terminal" di setiap tab. Akan cukup jelas apa itu.
Atau mungkin menggunakan kata "Terminal:" sebagai semacam pemisah visual.

Problems   Output   Debug Console                  Terminals:  Git   Bash, Bash   +   []   ^

Jadi inilah hasil akhir yang saya harapkan di sini:
68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6a736d656368616d2f61746f6d2d7465726d696e616c2d7461622f6d61737465722f64656d6f2e676966

Diambil dari https://atom.io/packages/terminal-tab

Sederhana dan mudah untuk dipahami dan memberikan fleksibilitas kepada pengguna akhir tentang bagaimana mereka ingin membagi / menyusun IDE mereka.

Saya bingung. Kita sudah bisa memiliki satu terminal di bawah, kanan, kiri, atau layar penuh.

Kita sudah bisa memiliki satu terminal di bawah, kanan, kiri, atau layar penuh.

Kami lakukan? Bagaimana cara membuat terminal di sisi kiri? Saat ini, saya hanya bisa melihat sisi bawah atau kanan.

Anda tidak bisa pergi tapi tetap saja, saya bingung dengan gif ini. lol

Saya tidak yakin tentang plugin Atom (tidak bisa mengatakan saya telah menggunakannya), tetapi saya berasumsi Anda dapat membuka banyak terminal, semuanya akan diperlakukan sebagai tab individual.

Yang terpenting, tab tersebut berperilaku sama seperti tab editor biasa, tab tersebut dapat ditempatkan di tempat yang sama dengan kode Anda. Web IDE Cloud9 melakukan hal yang sangat mirip dengan ini. Anda dapat membuka terminal sebanyak yang Anda inginkan, dan Anda bebas menempatkannya di tempat yang Anda inginkan di ruang kerja Anda di dalam tata letak layar terpisah + tab.

Mungkin saya salah paham tentang masalah ini, tetapi pada dasarnya desainer UX khawatir tentang kebingungan antara berbagai jenis tab.

Saya hanya akan menyembunyikan bilah tab secara default dan menampilkan 1 "tab". Simpan drop down.

Kemudian setelah terminal baru diluncurkan, jika opsi ditetapkan oleh pengguna, singkirkan menu tarik-turun dan tunjukkan bilah tab.

Apakah saya melewatkan sesuatu?

Saya pikir akan lebih baik untuk menjadikan terminal sebagai tab seperti tab editor lainnya, dan biarkan pengguna memutuskan bagaimana mereka ingin menata jendela.

Inilah yang coba ditunjukkan oleh gif yang "membingungkan" di atas.

Ya, maaf jika gif membuatnya lebih membingungkan tetapi pada dasarnya ini adalah premis yang saya coba untuk dapatkan.

Mengenai masalah desainer UX yang khawatir tentang kebingungan, saya pikir jika Anda membuka terminal maka Anda mungkin tahu apa yang Anda lakukan dan itu tidak membingungkan sama sekali.

Sebagai beberapa jenis solusi, saya menyiapkan pintasan keyboard berikut:

{
  "key": "cmd+right",
  "command": "workbench.action.terminal.focusNext"
}
{
  "key": "cmd+left",
  "command": "workbench.action.terminal.focusPrevious"
}

Ini memungkinkan saya beralih cepat antar terminal tanpa perlu menggunakan mouse dan pemilih jelek itu.

@vedmant Anda dapat memperbaikinya agar hanya berfungsi ketika terminal difokuskan jika itu juga lebih disukai:

{
  "key": "cmd+right",
  "command": "workbench.action.terminal.focusNext",
  "when": "terminalFocus"
}
{
  "key": "cmd+left",
  "command": "workbench.action.terminal.focusPrevious",
  "when": "terminalFocus"
}

Maaf jika hal seperti ini sudah disarankan (saya hanya membaca sekilas komentar) atau mungkin saya harus menjadikannya masalah baru. Bagaimanapun, beri tahu saya.

Mengingat kemajuan yang telah dibuat dengan edisi # 14909. Bisakah kita memiliki opsi untuk menempatkan terminal ke tab normal yang diperlakukan dari sudut pandang lokasi sama seperti tab lainnya? Ini akan memberikan banyak fleksibilitas kepada pengguna tentang bagaimana mereka ingin melihat terminal mereka. Sekarang ada (atau lebih tepatnya segera) begitu banyak fleksibilitas dengan cara melihat dan mengatur tab normal, terminal sekarang sangat dibatasi sebagai perbandingan.

@Tyriar workbench.action.terminal.focusPrevious sepertinya tidak berfungsi

Saya juga mencoba workbench.action.terminal.focusPreviousPane karena begitulah cara Defaults Kebindings menggunakannya, tetapi tidak berhasil ( workbench.action.terminal.focuNextPane juga tidak berfungsi)

jadi singkatnya: hanya workbench.action.terminal.focusNext berfungsi

    {
        "key": "ctrl+pagedown",
        "command": "workbench.action.terminal.focusNext",
        "when": "terminalFocus"
    },
    {
        "key": "cmd+pageup",
        "command": "workbench.action.terminal.focusPrevious",
        "when": "terminalFocus"
    }

Versi VSCode

Version 1.24.1
Commit 24f62626b222e9a8313213fb64b10d741a326288
Date 2018-06-13T17:47:35.732Z
Shell 1.7.12
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64

OS: lubuntu 18.04

Diuji tanpa ekstensi

Edit

Terima kasih Tyriar, saya menulis cmd bukan ctrl atas

@caub Anda harus membuat masalah baru jika Anda ingin bantuan (ini selalu bekerja dengan baik untuk saya di Ubuntu 18).

Baru-baru ini menyadari masalah dengan memiliki terminal di mana itu: membuat tidak mungkin untuk melihat tab masalah pada saat yang sama.

Saya kira Anda memiliki ruang kerja dengan banyak proyek. Apa yang dapat Anda lakukan, adalah memiliki satu terminal per proyek, dan memiliki ekstensi yang memfokuskan terminal yang sesuai berdasarkan file yang difokuskan di editor (dan di proyek mana itu berada)

Itu tidak menyelesaikan masalah khusus Anda, tetapi membuatnya lebih mudah untuk beralih dan memperhatikan masalah

Saya setuju bahwa pemilihan terminal benar-benar tidak praktis, hanya ada nomor: 1: bash , 2: bash , .. akan jauh lebih baik untuk menampilkan nama dasar folder daripada

Dengan lebih banyak latihan, saya menyadari proposal Tab ini adalah cara terbaik: +1:, saat ini saya masih menggunakan terminal OS saya sendiri terlepas dari VSCode, karena pemilihan terminal membuatnya tidak praktis, bahkan dengan penamaan yang lebih baik masih belum cukup praktis

Saya juga berpikir ini dapat diselesaikan dengan baik jika terminal dapat hidup sebagai bagian dari tata letak grid, dan akan lebih masuk akal dari perspektif UX - di mana semuanya dapat diambil di mana saja.

@mrckeb Setuju. Saya tidak yakin bagaimana mereka bisa menangani tab dan split, tapi itu bisa dilakukan. Tmux melakukannya.

Saya harap kita juga bisa memasang terminal di panel editor teks, itu sudah sangat fleksibel.

Saya telah mengamati masalah ini selama beberapa waktu dan masih berharap ini dapat diterapkan. Saya melihat bahwa masalah serupa dibuka secara teratur. Mudah-mudahan saya bisa merangkum apa sebenarnya yang diminta dan mengapa (setidaknya dari sudut pandang saya).

Apa

Pada dasarnya apa yang saya harapkan adalah bahwa terminal baru _optional_ dapat dibuat sebagai _editor tab_, yang pada dasarnya mereplikasi perilaku ekstensi Atom ini (yang sangat saya lewatkan sejak beralih dari Atom ke VSCode). Saat tab terminal baru dibuat, diperlakukan dengan cara yang sama seperti tab editor dan ditempatkan dalam grup editor. Tab terminal diperlakukan di UI secara identik dengan tab editor.

Tab terminal tidak perlu dipertukarkan dengan terminal di panel untuk memulai; mereka dapat dibuat sebagai entitas yang benar-benar terpisah pada awalnya untuk mengumpulkan umpan balik.

Mengapa

Saya praktis tinggal di terminal, dan memiliki tab terminal dengan cara ini memecahkan semua masalah dan kasus penggunaan berikut:

  • Lihat dan gunakan lebih dari dua terminal secara bersamaan. Mudah dilakukan dengan mengatur tiga atau lebih terminal bagaimanapun saya suka di grid editor.
  • Gunakan VSCode sebagai satu-satunya emulator terminal saya, dengan membuka jendela VSCode dengan hanya tab terminal di dalamnya.
  • Memiliki banyak terminal terbuka pada saat yang sama, tetapi saya tidak ingin melihat sekarang.

Bahkan di dunia tab terminal, saya akan menemukan keberadaan panel yang berbeda dari grup editor menjadi berguna dan saya tidak akan menganjurkan untuk mengeluarkan panel. Panel masuk akal untuk menempatkan informasi tambahan yang berbeda dari _primary content_ yang saya kerjakan. Kuncinya adalah, bagi saya, terminal biasanya _kelas pertama_ yang saya kerjakan, dan bukan hanya konten tambahan. Dengan perspektif ini, sangatlah wajar jika terminal tinggal bersama dengan editor.

@sagebind Saya melihat langkah pertama menuju ini sebagai mengaktifkan tab terminal di dalam panel, pada dasarnya hanya menukar dropdown dengan sesuatu yang kurang mengerikan. Ini kemudian dapat dibangun dengan cara berikut:

  1. Izinkan panel ditempatkan lebih fleksibel https://github.com/Microsoft/vscode/issues/57029 , https://github.com/Microsoft/vscode/issues/50984 , https://github.com/Microsoft/ vscode / issues / 37877 , https://github.com/Microsoft/vscode/issues/10121
  2. Selidiki mengizinkan terminal individu untuk "melepaskan" dari panel dan ditempatkan di kisi editor seperti yang Anda bicarakan (jenis terlacak dalam masalah ini). Ini membutuhkan sedikit pekerjaan untuk mengetahui dampaknya pada UX, perintah, keybindings, dan API ekstensi.

Juga, @sagebind , tidak yakin apakah Anda pernah mendengar tentang ConEmu, tetapi itu melakukan apa yang Anda jelaskan.

Dan jika Anda seorang gamer jadul, ia memiliki drop-down gaya gempa (Ctrl + ~). Jadi semua terminal saya tetap tersembunyi, sampai waktunya habis.

Saya pikir ekstensi ini menunjukkan bagaimana membuat tab dengan cara yang bersih.

https://marketplace.visualstudio.com/items?itemName=Tyriar.terminal-tabs

@PauloDanielCarneiro Ekstensi itu sebenarnya dibuat oleh salah satu pengembang senior VSCode sendiri (@Tyriar)

Saya tahu masalah ini sudah lama, tetapi ini akan luar biasa

Itulah fitur yang hilang yang mencegah semua SysAdmin untuk sepenuhnya melompat dari ISE ke VSCode.

Sebagai SysAdmin saya menghabiskan sebagian besar waktu saya bekerja secara bersamaan di beberapa komputer.

Saya terhubung ke komputer jarak jauh dengan CTRL + SHIFT + R.
Ini membuka tab terminal baru yang dinamai dengan nama komputer yang saya hubungkan.
Dan setiap tab terminal ditautkan ke satu atau beberapa tab skrip di bawah ini.
Saya beralih dari tab skrip ke tab terminal dan sebaliknya dengan CTRL + R.

Itu sangat mudah, praktis, dan kuat pada saat yang sama ...

tabs

Apakah fitur ini sedang dipertimbangkan?

Bukan pengganti, tetapi Anda dapat menggunakan cmd-\ untuk membagi terminal Anda

Terima kasih @ Hum4n01d itu lebih baik, tidak tahu tentang itu.

@ Hum4n01d Dalam kasus saya, saya dapat membagi terminal dengan Ctrl+] , atau hanya mengklik ikon untuk membagi terminal di sudut kanan atas jendela terminal, di sebelah opsi Kill Terminal .

Jika saya hanya membutuhkan 2 atau 3 terminal, saya menganggap fitur ini sangat berguna (bahkan lebih baik daripada tab, karena saya tidak perlu beralih dari satu tab ke yang lain untuk melihat terminal).

Hanya dalam kasus di mana saya memerlukan beberapa terminal, ini mungkin bukan solusi, meskipun tab juga mungkin tidak (per se), melainkan akan membutuhkan sesuatu seperti tab + jendela mengambang (https://github.com/Microsoft/vscode / issues / 10121).

Saya masih percaya pendekatan terbaik di sini adalah yang digunakan tim Atom, memiliki terminal yang dapat dipertukarkan dengan tab kode. Dengan cara ini, pengguna dapat membuat ruang kerja yang mereka inginkan secara modular.

Tab di area terminal akan keren, tetapi mengapa berinvestasi untuk melakukan itu ketika waktu dapat dihabiskan untuk memungkinkan tab kode membungkus instance terminal?

Halo. Saya pergi mencari tentang masalah yang saya alami dan saya berakhir di sini.

Satu-satunya hal yang ingin saya lakukan adalah menggunakan Terminal sebagai tab editor biasa

Layar laptop 15 "saya tidak cukup besar untuk dipusingkan dengan terminal kecil yang dijejali panel bagian keluaran build. Ini berfungsi dengan baik untuk build, tetapi mungkin tidak sesuai untuk penggunaan terminal.

Jika saya mengubah ukuran Panel menjadi besar sehingga saya dapat melakukan pekerjaan sebenarnya di sana, tiba-tiba tidak masuk akal jika popup keluaran build menjadi super besar. Dan jika saya membuatnya kecil sehingga sesuai untuk keluaran build, maka itu tidak dapat digunakan untuk pekerjaan terminal. Konsep UI ini tidak bercampur dan menambahkan di bilah Tab ada kegilaan lebih lanjut.

Dan bagaimana jika saya benar-benar tidak ingin pekerjaan yang saya lakukan di terminal menjadi bagian dari panel yang beralih antar tab saat saya menjalankan tugas? Atau muncul naik turun secara dinamis? Jadi setiap kali saya membangun, sekarang saya beralih tab di beberapa sistem tab lain ? Dan kemudian beralih kembali ke hal-hal yang saya kerjakan di terminal? Oh, jadi solusinya adalah kita dapat Membagi Panel ... Ini semakin gila, dan Anda memiliki reproduksi sistem UI yang sama dengan yang sudah dimiliki VSCode. Ini tidak masuk akal.

Merupakan ide yang buruk untuk mengubah Panel menjadi sistem UI paralel dengan idiom yang bersaing. Berbagai orang mencoba melakukan ini dengan peretasan dan solusi yang buruk di ekstensi. Jadi alangkah baiknya jika Microsoft mengambil kendali atas situasi dengan memperbaiki masalah.

@ Zyrsha - dalam hal ini, mengapa Anda menggunakan VS Code? Sepertinya Anda akan mendapatkan nilai lebih dari penggunaan terminal aktual yang disertakan dengan sistem operasi Anda, dengan banyak tab. Pertanyaan jujur ​​/ pembaca sangat bingung.

BTW vscode adalah IDE pertama dan satu-satunya tempat saya menggunakan terminal di dalamnya. Di laptop 13 "saya berfungsi dengan baik untuk saya. Untuk IDE lain seperti eclipse atau webstorm, saya sangat senang menggunakan Awesome WM untuk pengalihan cepat dan pengurutan jendela.

Saya pikir ide untuk menggunakan terminal (atau "jendela" lainnya) sebagai tab biasa bagus dan bekerja di gerhana. Tetapi terminal memiliki alur kerja yang sedikit berbeda, setidaknya untuk saya. Saya membutuhkan kemungkinan untuk beralih cepat ke terminal "kanan". Seperti orang lain saya menggunakan Tab Terminal untuk itu:
image
yang sayangnya, tidak sempurna karena masalah seperti ini. Selain itu, saya tidak mengerti mengapa vsc tidak memiliki terminal built-in yang canggih.

@ shane-smith

terminal sebenarnya yang disertakan dengan sistem operasi Anda, dengan banyak tab.

Aplikasi Konsol yang disertakan dengan Windows tidak memiliki tab yang mendukung AFAIK. Jadi itu keluar. Dan Linux tidak "datang dengan" emulator terminal itu sendiri (mungkin distro), Anda harus memilih yang Anda suka. Dalam hal ini sepertinya yang disukai oleh @Zyrsha adalah VS Code, jika dapat ditingkatkan sedikit.

@agebind

Dalam hal ini sepertinya yang disukai oleh @Zyrsha adalah VS Code, jika dapat ditingkatkan sedikit.

Oh, saya setuju - terminal di VS Code luar biasa. Dan saya mengomentari masalah ini karena saya setuju bahwa masih ada ruang untuk perbaikan.

Bagian yang membuat saya bingung adalah sepertinya orang lain ingin menggunakan terminal untuk mengedit semua file mereka - jadi saya bertanya-tanya mengapa mereka menggunakan VS Code, jika mereka tidak benar-benar menggunakan built-in editor file sama sekali? Membaca ulang komentar mereka, mungkin saya langsung mengambil kesimpulan dan mereka hanya ingin mengedit file _some_ di terminal, tidak semuanya.

Halo.

Bagian yang membuat saya bingung adalah sepertinya orang lain ingin menggunakan terminal untuk mengedit semua file mereka - jadi saya bertanya-tanya mengapa mereka menggunakan VS Code, jika mereka tidak benar-benar menggunakan built-in editor file sama sekali? Membaca ulang komentar mereka, mungkin saya langsung mengambil kesimpulan dan mereka hanya ingin mengedit file _some_ di terminal, tidak semuanya.

Tidak, mereka hanya ingin memiliki tab terminal seperti tab editor, persis seperti yang kami miliki di Cloud9, Atom, dan beberapa editor lain (bahkan Vim dan Emacs). Bagi orang-orang yang menggunakan Mac atau Linux, wajar jika memiliki editor di bagian atas jendela dan beberapa tab terminal di bagian bawah.

Bahkan Theia-IDE dapat memiliki banyak tab terminal dan didasarkan pada beberapa bagian VSCode.

Lihatlah tangkapan layar ini dan Anda akan mengerti:

https://discourse-cdn-sjc1.com/business5/uploads/trydiscourse4/optimized/2X/a/a6c21ba006e249a65bb0c4c2ecf94296d6daad20_1_666x500.png

https://lh3.googleusercontent.com/eI50dceQrsPJDhqQmM_QMjd4rkORHRRd_Y3rbnD1M6KYbKulXI72PFC-A0y-SDraVJAXhGTFcg=w640-h400-e365

Oke, mari kita abaikan mengapa sejenak dan fokus pada caranya:

Bagaimana ini akan diterapkan? Adakah alasan arsitektural mengapa terminal berada di lokasinya saat ini?

Apakah mungkin dengan cara yang efisien memiliki plugin menyediakan terminal di tab?

      Ok, let's ignore the why for a moment and focus on the how:

Bagaimana ini akan diterapkan? Adakah alasan arsitektural mengapa terminal berada di lokasinya saat ini?
Apakah mungkin dengan cara yang efisien memiliki plugin menyediakan terminal di tab?

Di sisi arsitektur:

  • VSCode memiliki banyak tab skrip yang ditautkan ke satu konsol tunggal (konsol terintegrasi PowerShell) yang sangat baik untuk menguji beberapa skrip pada satu mesin . Namun, meskipun Anda menambahkan lebih banyak terminal, semua tab skrip tetap tertaut ke konsol terintegrasi PowerShell yang sama.
    Pada awalnya, VSCode telah ditulis oleh para pengembang untuk para pengembang.

  • ISE dibangun dengan cara yang berlawanan: Anda dapat membuka banyak konsol dan ke setiap konsol Anda dapat menghubungkan beberapa tab skrip (ini sangat bagus untuk bekerja secara bersamaan di banyak komputer).
    Kami menulis dan menjalankan beberapa skrip secara bersamaan di komputer yang berbeda .
    Pada awalnya, ISE didesain untuk SysAdmins.

Untungnya, cara ISE (tab Scripting yang ditautkan ke tab Console) juga berfungsi untuk developer.
Tetapi cara VSCode saat ini (tab Konsol ditautkan ke tab Scripting "satu") tidak cocok untuk SysAdmins.
Jika Anda tidak ingin atau tidak dapat membalikkan cara (dari Skrip yang ditautkan ke Konsol menuju Konsol yang ditautkan ke skrip) setidaknya kita harus dapat memilih ke tab konsol mana kita ingin menautkan setiap tab skrip ...

Saya tidak tahu apa-apa tentang ISE, tetapi saya pasti ingin memiliki terminal di tab atau jendelanya sendiri, daripada terpasang secara permanen di bagian bawah layar. Saya tidak suka harus menyesuaikan ketinggian untuk beralih dari file kode ke terminal.

Selain itu, meskipun tab terminal _does_ menyelesaikan masalah yang menginginkan lebih dari satu terminal aktif, dari sudut pandang UX, akan lebih baik untuk memiliki terminal di tab yang sama yang digunakan untuk file. Ini memastikan bahwa Anda memiliki dua keybinding standar untuk beralih tab, bukan dua standar, dan dua untuk Tab Terminal (tidak termasuk keybindings numerik untuk beralih ke tab terminal tertentu). Alur kerja untuk memisahkan editor menggunakan tab tersebut, atau memindahkan tab ke jendela VS Code lainnya, atau apa pun yang dapat Anda lakukan dengan tab, akan sama, dan akan membuat UX standar. Seperti sekarang, Anda memiliki dua alur kerja UX yang berbeda, dan Anda tidak mendapatkan banyak manfaat dari keduanya.

Saya mengerti mengapa itu mungkin belum dilakukan sampai titik ini, atau mengapa kami memiliki Tab Terminal sebagai solusinya, tetapi terminal di tab editor / buffer / apa pun yang dilakukan di seluruh papan di Emacs, Atom, dan sejenisnya, sebagai standar Pengalaman UX, yang juga ingin saya lihat di VS Code.

Sekarang Nuclide tidak digunakan lagi, saya ingin beralih ke VS Code, tetapi saya sangat ingin dapat membaca semua output build di terminal- yang sangat sulit dilakukan dengan VS Code. Mengapa terminal perlu dipaksa ke tempat tertentu, dan tidak diperlakukan sama seperti setiap tab / jendela lainnya?

Bagi saya, masalah utama adalah saya tidak dapat melihat berapa banyak terminal yang telah saya buka tanpa menggunakan mouse. Dan tidak ada cara untuk mengetahui arah mana yang harus Anda tuju untuk sampai ke terminal tertentu tanpa bersepeda sembarangan. Tab adalah pikiran pertama saya, tetapi saya kira ada cara lain untuk mengatasi masalah ini. Anda dapat, misalnya, secara opsional menampilkan terminal aktif di bilah Explorer, dengan terminal aktif disorot.

Bagaimana ini akan diterapkan?

Untuk linux, kita dapat menerapkannya hanya sebagai kasus khusus dari pendekatan yang lebih umum: Jalankan perintah yang ditentukan pengguna dan berikan pengenal jendela X dari tab baru kepada mereka. Kami kemudian dapat menjalankan xterm … -into $VSCODE_TAB … untuk terminal, tetapi juga mengintegrasikan hal-hal lain dengan sangat mudah. Akan lebih baik jika ada perintah CLI untuk mencari instance VSCode berdasarkan direktori proyek (default ke direktori kerja tempat perintah dijalankan), buka tab dalam contoh itu, dan cetak X win id pada stdoutdan VSCode $DISPLAY jika berbeda sehingga setiap utilitas eksternal dapat bergabung dengan GUI VSCode.

Sunting 2: Saya akan membuka tiket baru untuk gagasan itu karena ini bukan tentang terminal.

tidak !!! tab membuat ui terlihat buruk ....

@dononi

tidak !!! tab membuat ui terlihat buruk ....

Saya sangat optimis ini akan mudah untuk menonaktifkan dan / atau menyembunyikannya.

Cukup ubah drop-down menjadi tombol dan berikan gaya yang sama seperti tab di editor utama.

Untuk memperjelas, saya ingin tab tersebut dapat dipertukarkan dengan semua tab lainnya (misalnya tab kode sumber). Sama seperti di Atom.

Hanya untuk menjadi jelas, saya akan mengambil baik @andraz 's atau @floydnoel' s solusi mengingat bahwa Ops meminta memiliki pergi tanpa diketahui sejak 2016

@kitsirota Telah diperhatikan, dan ada di peta jalan tahun ini. Mereka tahu bahwa ini, dan masalah terkait untuk jendela mengambang, adalah dua fitur yang paling banyak diminta. Saya tidak yakin kapan akan dimulai atau selesai, tapi mungkin @Tyriar punya info lebih lanjut tentang itu.

Saya berharap ini akan segera mendapat perhatian karena permintaan, saya sangat menginginkannya juga. Juga seperti yang disebutkan @jaxspades, itu ada di peta jalan.

Menunggu ini dan jendela mengambang dari hari pertama saya mulai menggunakan VSCode. Saat ini saya menggunakan ConEmu. Hanya saja tidak berguna terminal attatched dan dropdown saat ini.

Sekadar catatan (sementara tab harus ditambahkan ke vscode) jika Anda masih menggunakan ConEmu, Anda mungkin ingin mencoba Terminal Windows.

Masih menunggu ini :)

Saya hanya ingin melihat "Output" & "Debug Console" secara bersamaan.

Saya tidak perlu tab, tetapi saya ingin melihat Masalah dan Terminal secara bersamaan. Namun, mungkin sulit untuk membedakannya tanpa semacam label dan oleh karena itu tab mungkin yang terbaik. Jadi saya pikir panel terpisah untuk terminal harus dihapus dan memungkinkan tab tambahan untuk semua jenis panel (Masalah, Output, Terminal, dll) Meskipun saya tidak dapat benar-benar melihat bagaimana beberapa tab "Output" atau "Masalah" akan dibutuhkan karena datanya akan sama. Jadi mungkin ketika menambahkan tab baru dan memilih jenis yang Anda tambahkan, jika Masalah sudah terbuka maka itu berwarna abu-abu dan dinonaktifkan dari menambahkan yang kedua dan hanya Terminal yang diizinkan untuk beberapa. Juga mengklik indikator Masalah dan Peringatan di bilah status akan otomatis membuka tab Masalah baru saat mengkliknya dan jika sudah dibuka maka itu menghapusnya.

Meskipun saya tidak dapat benar-benar melihat bagaimana beberapa tab "Output" atau "Problem" akan dibutuhkan karena datanya akan identik.

  • Konstelasi multipengguna yang kreatif di luar pemetaan layar / keyboard / fokus masukan klasik 1: 1 kepada pengguna.
  • Pengguna tunggal mendistribusikan alat yang digunakan untuk pemecahan masalah di beberapa layar atau wilayah layar. Dalam hal ini akan berguna untuk memiliki pengaturan filter, posisi gulir, dll. Independen untuk setiap panel Masalah / Output.
  • Mengatasi bug eksotis / fitur yang hilang dalam perangkat lunak screencasting Anda.

@Tyriar @jaxspades adalah 1754: +1: dan 187: hati: tidak cukup? Dan 34: roket :? Berapa seharusnya?

Ini masih terbuka ?!

Akankah membantu untuk melakukan crowdfund ini? Dimana saya menaruh uang saya?

@ Bessonov Saya ingin tab terminal tapi saya tidak di Microsoft jadi saya tidak punya suara. Saya ingin mereka menjadi editor, bukan di jendela kecil di bagian bawah layar. Jadi versi 1.43 baru saja dikirimkan dengan Editor Pencarian, jadi harapan saya adalah Terminal akan segera menyusul. @Tyriar , apakah Editor Pencarian membantu kita lebih dekat dengan Tab / Editor Terminal?

Edit: Menambahkan link ke masalah Editor Pencarian.

23931

Sekali lagi, ini ada di peta jalan, itu akan terjadi pada waktunya. Anda tidak perlu memberi tahu saya, saya mungkin menginginkannya lebih dari semua orang di sini dan saya sangat menyadari bahwa ini adalah masalah ke-2 yang paling banyak dipilih. Namun, ini bukan tugas yang sepele seperti yang terlihat di permukaan. Kami secara aktif berinvestasi dalam tata letak meja kerja yang fleksibel:

  • Cari di panel
  • Cari di editor
  • Semua tampilan panel dan viewlet dapat dipertukarkan

Semua upaya ini dimasukkan ke dalam bagaimana masalah ini pada akhirnya akan diselesaikan dan sebagian besar memblokir pekerjaan di terminal, misalnya desain yang kami pertimbangkan untuk item terakhir memunculkan beberapa pertanyaan yang sangat penting tentang bagaimana tab di terminal akan bekerja. sebagai lawan tampilan panel.

Saya ingin mereka menjadi editor, bukan di jendela kecil di bagian bawah layar.

Ketika saya mencoba untuk memisahkan konsep-konsep menjadi isu-isu yang terpisah sejak lama, masalah ini sekarang mencakup beberapa hal; tab di dalam panel terminal, tab terminal di editor dan tab terminal dapat diseret di antara keduanya.

Terima kasih atas pembaruan @Tyriar. Kedengarannya bagus - menyelesaikan semua masalah ini bersama-sama sangat masuk akal. Jika ada peluang untuk pengujian pengguna, beri tahu kami.

Tidak yakin ide ini telah disebutkan, meskipun saya telah membaca seluruh komentar:
Kami (juga) membutuhkan tab terminal bukan karena tampilannya, tetapi karena saat ini semua tab editor terhubung ke terminal yang sama.

Saat ini, jika saya ingin menampilkan rangkaian editor di terminal lain, saya harus membuka konsol VS Code baru.

Mampu menautkan panel editor ke terminal lain sangat berguna ketika Anda ingin menjalankan kode panel editor yang berbeda pada komputer yang berbeda. Dengan ISE Anda dapat melakukan ini di konsol yang sama.
Saat ini dengan VS Code, Anda harus membuka konsol sebanyak komputer tempat Anda ingin mengeksekusi kode editor Anda.

@Bayu_joo ,
Bersama dengan catatan Anda, saya juga ingin melihat "Masalah" dan jendela "Terminal" pada saat yang sama berdampingan. Saya berharap itu juga mungkin.
Terima kasih

@ fullenw1 ide menarik yang belum pernah saya dengar, terima kasih!

@ggedde kami secara aktif mendiskusikan bagaimana ini akan bekerja dalam pertemuan UX.

Dengan masalah # 10121 diselesaikan ini akan menjadi lebih dari tidak pernah fitur yang baik.

Panel terminal membutuhkan semacam judul ..

76528795-bdeb6e00-6447-11ea-9861-65f444e5d867

Tidak mungkin untuk mengetahui panel mana yang merupakan jalur saat Anda memiliki banyak pengamat

@IceSentry Saya memang memiliki masalah tetapi @Tyriar mengatakan itu adalah duplikat dari yang ini. Saya berasumsi itu terkait karena @Tyriar menutup milik saya untuk mendukung ini .. tidak, saya tidak membaca dialog selama 6 tahun :)

Saya tidak tahu apakah ada yang menunjukkan hal ini, tetapi tab Terminal yang dapat dipertukarkan di UI dengan tab Editor, serta konsol UI tetap, keduanya merupakan fitur di Cloud9 IDE, jika Anda menginginkan contoh bagaimana saya ' d berharap ini berhasil. Anda bahkan tidak perlu menyingkirkan panel Terminal lama - cukup buat panel dapat disembunyikan (seperti sekarang) dan diganti dengan panel "editor" biasa yang berisi tab Terminal.

Hal baik lainnya tentang Terminal di Cloud9 adalah bahwa mereka terpasang ke instans tmux (IIRC) daripada terminal langsung. Hal ini memungkinkan frontend untuk mengubah skala (mis. Ditutup) tanpa kehilangan proses terminal, dan dengan lancar melampirkan ke klien baru (fitur yang akan sangat berguna untuk pengguna Cloud VS Code), dan bahkan berbagi contoh terminal klien dengan yang lain (hypervisor -level) pengguna.

Ada ekstensi untuk melakukan ini untuk Terminal VS Code built-in, tetapi jika Anda mencari abstraksi untuk terminal, akan keren untuk memaketkannya di dtach atau abduco .

Tab terminal yang dapat dipertukarkan di UI dengan tab Editor

Ini luar biasa.

Kita dapat menyingkirkan konsol bawah dan mengubah semua panelnya (Masalah, Output, konsol Debug, dan semua terminal) menjadi tab editor biasa, yang dapat dibuka sesuai kebutuhan, setiap jenis panel memiliki ikon tertentu.

Sebagai referensi, halaman informasi Ekstensi, UI Pengaturan, Pintasan Keyboard, dan mungkin hal-hal lain sudah ditangani dengan cara ini, sebagai tab editor biasa dengan ikon kustom.

Ini akan memungkinkan orang untuk membagi dan mengatur terminal mereka sesuka mereka, menggunakan fitur yang ada untuk memisahkan dan mengatur tab editor.

Tentu saja terminal harus tetap berjalan di latar belakang bahkan setelah menutup tab editor masing-masing, yang dapat dibuka kembali sesuai kebutuhan. Saran tambahan untuk menggunakan tmux atau dtach untuk menjaga sesi terminal berjalan saat restart VSCode juga merupakan ide bagus, tetapi milik masalah yang berbeda.

image

Dengan api tampilan web baru, kita mungkin sudah bisa melakukannya sampai titik tertentu.
Tapi itu berarti Anda perlu menulis semua penanganan launch.json sendiri, yang tidak ideal.

Namun ada keuntungan membuatnya hanya sebagai 'tab' editor, karena tab editor dapat memiliki penangan Serialize / Deserialize.
Dengan demikian dimungkinkan untuk memberikan terminal perilaku menyimpan dan memulihkan. (seperti, simpan id sesi tmux dan pasang kembali saat pemulihan)

POC: https://github.com/mmis1000/Vscode-terminal-tab

@ mmis1000 tentu saja mungkin untuk membangun dengan API tampilan web sekarang, tetapi itu akan kehilangan semua integrasi, perintah, fitur seperti penanganan tautan, akses api ekstensi dan hanya akan bertindak seperti hal yang terpisah pada umumnya.

Fitur simpan dan pulihkan dilacak di https://github.com/microsoft/vscode/issues/20013

@Tyriar Saya sebenarnya berpikir untuk menelurkan Terminal sebagai gantinya dan menggunakannya sebagai contoh pty bawahan, jadi setidaknya hal-hal seperti integrasi git akan berfungsi (sepertinya itu perlu mengirimkan beberapa env ke terminal).

Namun, ternyata api vscode yang diekspos terlalu terbatas. Tidak hanya tidak mengekspos proses underling pty, juga tidak mengekspos fungsi stdio dan terminal seperti pty resize. Membuatnya sangat tidak mungkin untuk digunakan sebagai sumber pty. Jadi saya terpaksa menelurkan pty saya sendiri.

POC: https://github.com/mmis1000/Vscode-terminal-tab

Hai @ mmis1000 bisakah Anda menambahkan beberapa instruksi pemasangan, itu akan bagus. Sangat ingin memiliki ini.

@ mmis1000 itu dibatasi oleh desain karena ini harus menjadi bagian dari produk inti, ada juga masalah kinerja dengan acara window.onDidWriteTerminalData itulah sebabnya mengapa macet dalam diusulkan. Meskipun ekstensi semacam ini dapat berguna sebagai solusi sementara, saya khawatir tentang potensi pengguna lama setelah kami mendapatkan terminal untuk bekerja di dalam area editor. Masalah lain yang bisa Anda dapatkan adalah ketergantungan pada node-pty yang dikirim sebagai bagian dari vscode, ini bukan API publik yang dimaksudkan untuk konsumsi dan kemungkinan akan merusak ekstensi Anda di masa mendatang.

@Tyriar Sebagai pengguna cloud9 (dan masih menjadi pengguna cloud9 sekarang).

Akan sangat membantu jika hanya menggunakan area layar mana saja sebagai terminal dan dengan sesi yang terus-menerus didukung oleh tmux.

Saya kebanyakan hanya menggunakan cloud9 sebagai terminal web untuk mengontrol VPS. (Dan ini adalah SATU-SATUNYA alasan saya masih menggunakannya sekarang. Karena vscode benar-benar dilakukan dengan buruk tentang terminal. Sungguh menyakitkan kehilangan terminal secara tidak sengaja membukanya kembali setiap saat).

Cloud9 selalu menampilkan jendela yang sama, editor yang sama, terminal yang sama, dan sesi yang sama di tempat yang sama seperti yang Anda lihat sebelum Anda menutup browser kemarin. Jika tidak dapat menemukan sesi (mungkin server di-boot ulang), setidaknya itu akan membuka kembali sesi baru dengan lingkungan yang sama untuk Anda.

Jika saya akan menggunakan layanan editor online lain (maksud saya, buka di browser), saya agak mengharapkannya untuk mendukung ini di luar kotak (atau setidaknya dapat dicapai dengan ekstensi), karena Anda tidak mungkin untuk tidak menutup browser Anda ( dengan sengaja atau tidak) sama sekali.

(Juga karena cloud9 melakukannya beberapa tahun yang lalu, jadi saya tidak merasa ini adalah masalah teknis)

Pengalaman terminal yang diberikan vscode tidak benar-benar terlihat sebagai produk gen terbaru bagi saya.

@ mmis1000 Bisakah Anda menambahkan beberapa petunjuk pemasangan?

Repo https://github.com/mmis1000/Vscode-terminal-tab memiliki pelacak masalahnya sendiri. Siapapun yang merasa perlu bertanya tentang proyek itu, silakan bertanya di sana.

ezgif-2-8012d10efb96

Untuk demonstrasi tentang terminal apa yang saya harapkan untuk dilihat pada ide / ide berbasis browser jarak jauh.
Saya berharap itu hanya mengembalikan posisi tab / sesi terminal saat saya menutupnya kemarin.
Bukan It will kill the all the important tasks I am running instantly because I accidentally close the the browser / the browser crashed / the computer BSOD .

@xggmn terlihat mungkin tapi tidak.

Apa yang saya harapkan adalah terminal persistent tersedia secara universal bahkan pada instance vscode lokal. (setidaknya ke titik iterm2)
Mengapa fungsi yang bermanfaat seperti itu perlu dibatasi untuk koneksi jarak jauh?

Dan saya juga tidak mempertahankan koneksi ssh, saya hanya menghubungkan beberapa terminal multiplexer dan menjalankan semuanya di sana.

@ mmis1000 lagi yang dilacak di https://github.com/microsoft/vscode/issues/20013 , lihat di sana untuk yang terbaru. Coba pertahankan topik karena ada _banyak_ orang yang diberi tahu ketika Anda mengomentari masalah ini.

Apakah ada peluang untuk memiliki ini di iterasi berikut?

Buka terminal sebagai tab halaman editor biasa adalah ide bagus bagi saya, dan saya sangat membutuhkannya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat