Welcher Workflow beim Bearbeiten großer Projekte mit mehreren Dateien verwendet werden soll


7

In letzter Zeit habe ich mehr und mehr meiner Arbeit von IntelliJ auf vim verlagert. Mit einer Handvoll Plugins und Einstellungen vermisse ich die IDE nicht sehr.

Eine Sache, die ich vermisse, ist die einfache Navigation in einem großen Verzeichnisbaum von Quelldateien.

Ich arbeite an einem mittelgroßen Projekt mit 39 Quelldateien. aufgeteilt auf eine Handvoll Verzeichnisse.

IntelliJ würde das Projektverzeichnis wie diese(nicht mein Bild) anzeigen . Wenn Sie mit einer IDE nicht vertraut sind, können Sie auf eine der Dateien klicken, um sie in Ihrem Hauptbearbeitungsfenster oder in einem Split zu öffnen.

Im Moment habe ich nur ein paar Tmux-Fenster geöffnet, aber das ist nur für zwei oder drei Dateien wirksam, bevor die Fenster zu klein werden.

Die Tmux-Seitenleiste repliziert die Funktion visuell, Sie müssen jedoch noch manuell einen Dateinamen und einen Pfad eingeben, um sie zu bearbeiten.

Vim ist nativ :Exund :Sexfunktioniert gut, aber (soweit ich das beurteilen kann) gibt es keine Möglichkeit, eine Datei in einem anderen Split zu öffnen. Ich möchte es öffnen und Dateien in vorhandenen Puffern / Splits öffnen können.


3
Versuchen Sie es mit oeiner Datei, wenn Sie netrw verwenden (netrw wird :Exgeöffnet).
Tumbler41

Antworten:


6

Ich habe lange Zeit Essig verwendet und dank "the tpope way" die einheimischen netrwAbkürzungen gelernt (die übrigens eine Baumansicht haben , drücken Sie idreimal). Alles, was ich auf einem nackten Vim vermisse, ist die -Zuordnung, um ein Verzeichnis aufzurufen .

Obwohl ich zu Dirvish gewechselt bin, das in großen Verzeichnissen wahnsinnig schneller ist und einen noch idiomatischeren Ansatz hat; aus der README:

Der Pfadnavigator wurde entwickelt, um mit den integrierten Mechanismen und ergänzenden Plugins von Vim zu arbeiten

Jede Zeile ist ein Dateipfad (durch Verbergen ausgeblendet ).

Ändert niemals das Dateisystem

Die visuelle Auswahl öffnet mehrere Dateien

Im Gegensatz zu NERDTree und anderen Plugins, die eine klassische IDE imitieren, verwenden diese beiden den aktuellen Puffer, um die Dateiliste anzuzeigen, die einen fokussierteren Workflow erzwingt und letztendlich mehr Platz für den Inhalt bietet. Nichts hindert Sie daran, Netrw oder Dirvish in einer vertikalen Spalte wie eine Projektschublade zu öffnen.

Neovim w / dirvish & ctrlp

Ich bin auch an Strg (oben sichtbar) gewöhnt, um schnell Dateien im aktuellen Verzeichnis zu finden. Diese Konfiguration wurde vom Gedankenbot-Beitrag Faster Grepping in Vim inspiriert und ersetzt grepdurch ag:

if executable('ag')
  " Use Ag over Grep (additional options: --column, --ignore-case)
  set grepprg=ag\ --nocolor\ --nogroup\ --vimgrep

  " Use The Silver Searcher in CtrlP for listing files
  " Respect .gitignore and .agignore, ignores hidden files by default
  let g:ctrlp_user_command = 'ag --nogroup --nocolor --files-with-matches --hidden --ignore .git -g "" --literal %s'
  " Disable per-session caching
  let g:ctrlp_use_caching = 0
else
  " Exclude .gitignore patterns
  let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -co --exclude-standard']
endif

Aber eine einfache Karte kann den Trick machen, tippen Sie einfach :e **/*gefolgt von einem Muster und fahren Sie mit <Tab>.

" Find a file in current working directory
nnoremap <Leader>e :e **/*

2

Ich mag Ranger wirklich als Dateiauswahl. Im Gegensatz zu NERDTree wird es nur angezeigt , wenn Sie es benötigen, hat Vim-ähnliche Tastenkombinationen und kann auch ohne Vim verwendet werden.

Bild



1

Sie können den integrierten Dateibrowser netrw in einem Seitenbereich verwenden. Hier ist eine kurze Einführung:

  1. Öffnen Sie den Ordner in netrw, vielleicht mit vim .oder:e folder

  2. Wählen Sie eine Datei aus und vdrücken Sie, um sie in einem [v] ertischen Split zu öffnen.

  3. Aber Sie möchten wahrscheinlich den Dateibrowser auf der linken Seite. Hit Ctrl-W x( permanente Korrektur )

  4. Möglicherweise möchten Sie, dass Ihr aktuelles Fenster breiter wird. Schlagen20 Ctrl-W >

  5. Wenn Sie das nächste Mal eine Datei öffnen möchten, drücken Sie, Shift-Panstatt vsie im vorhandenen Dateibereich (dem Fenster [P] revious) zu öffnen.

Bonus: Wie der Name schon sagt, kann netrw sogar über ein Netzwerk (FTP, SFTP) arbeiten. Ich bin nicht sicher, ob Dateibaum-Plugins wie NerdTree und VTreeExplorer dieses Verhalten bieten.

Sie können netrw veranlassen, einen Baum anzuzeigen, indem Sie die iTaste einige Male drücken .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.