417 Stimmen

Wie kann ich ein Terminal innerhalb von Vim laufen lassen?

Ich bin an Emacs gewöhnt, aber ich probiere Vim aus, um zu sehen, welches Programm mir besser gefällt.

Eine Sache, die ich an Emacs mag, ist die Möglichkeit, ein Terminal innerhalb von Emacs laufen zu lassen. Ist dies innerhalb von Vim möglich? Ich weiß, dass man Befehle von Vim aus ausführen kann, aber ich würde gerne in der Lage sein, ein Terminal innerhalb einer Registerkarte laufen zu lassen.

5voto

Dr Neo Punkte 534

Bei weitem habe ich viele der hier genannten Lösungen ausprobiert, aber was ich wirklich wollte, war, das Terminal offen zu halten, während ich eine ähnliche Erfahrung in VsCode . Dann stieß ich auf diese Lösung, die für mich perfekt funktioniert.

Vor der Installation:

  • Ich verwende Nvim 0.5 aber ich denke, es kann für jede Version funktionieren und wurde auch auf vim
  • Ich benutze macOS Catalina Version 10.15.7

Einrichtung des integrierten Terminals

Schritt -1-

  • Erstellen Sie ein Skript mit dem Namen myQuickTerminal.vim oder wie immer Sie es nennen wollen.
  • Geben Sie das folgende Skript ein

    "============================================================================== " "
    "
    "
    " "============================================================================== " " This is a script that will trigger a terminal quickly than the FloatTerminal " open new split panes to right and below "link: https://betterprogramming.pub/setting-up-neovim-for-web-development-in-2020-d800de3efacd "============================================================================== set splitright set splitbelow " turn terminal to normal mode with escape tnoremap <Esc> <C-><C-n> " start terminal in insert mode au BufEnter * if &buftype == 'terminal' | :startinsert | endif " open terminal on ctrl+n function! OpenTerminal() split term://zsh resize 10 endfunction nnoremap <leader> n :call OpenTerminal()<CR>

ANMERKUNG : Wenn Sie aus einem bestimmten Grund bash anstelle von zsh ausführen wollen, ersetzen Sie zsh mit bash .

Schritt -2-

Lassen Sie die Quelle, setzen Sie dies ein init.vim für Neovim oder `.vimrc' für Vim

source $HOME/.config/nvim/modules/mySpecialScripts/myQuickTerminal.vim

Diese wird vorgeladen, wenn Sie sie speichern und als Ressource verwenden, können Sie source $MYVIMRC zum schnellen Nachladen der Datei init.vim.

Schritt -3-

Ich gemappt, wie Sie im Skript n sehen können, um ein Terminal in einem neuen Fenster zu öffnen, ist mein (Leertaste) und sobald ich (Leertaste + n) ein Terminal wird ausgelöst werden und ich werde genießen, meinen Code zu schreiben, während das Terminal geöffnet ist.

  • Um den Einfügemodus im Terminal zu beenden, drücken Sie Esc. Um zum Code-Editor-Fenster zu wechseln, verwenden Sie STRG+w w. Diese Tastenkombination kann lästig werden, wenn Sie mehr als zwei Fenster geöffnet haben, daher habe ich auch die folgenden Tastenkombinationen hinzugefügt. Diese habe ich ebenfalls zugeordnet, um schnell zwischen den geöffneten Fenstern zu wechseln.

    " Better window navigation nnoremap <C-h> <C-w>h nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> <C-w>l

Optional

Wenn Sie möchten, dass Ihr Terminal den aktuellen Puffer mit der Taste verlässt, können Sie

tnoremap <Esc> <C-\><C-n>:q!<CR>

Da ich aber zwischen mehreren Puffern umschalten möchte, verwende ich stattdessen das Terminal, ohne es zu schließen:

tnoremap <Leader><Esc> <C-\><C-n>:q!<CR>

Endgültige Ergebnisse


enter image description here

Referenz:

3voto

Gatspy Punkte 1592

Ich benutze das jetzt, Sie können es auch versuchen. VimShell

3voto

romandas Punkte 3860

Die einzige Möglichkeit, die ich kenne, ist die Verwendung von vim-shell ein Patch eines Drittanbieters.

3voto

Subrat Prasad Punkte 103

Teilen Sie den Bildschirm und führen Sie den Befehl term ++curwin um das Terminal innerhalb des Vim-Puffers laufen zu lassen. Der folgende Befehl macht beides und hat bei mir funktioniert:

:bo 10sp | term ++curwin

3voto

Vlad Mikheenko Punkte 92

Wenn Sie an einer schnellen Antwort interessiert sind, hier ist sie: :vert term . Ihr Bildschirm wird vertikal geteilt und ein Terminal geöffnet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X