Stellen Sie mit vim die Popup-Anzeige für die Java-Sprache ein.

Zunächst einmal bin ich Zeitarbeiter. Daher ist das Verkaufspersonal zum Zeitpunkt des Interviews mit dem Versandziel anwesend. Da der Verkäufer meine Meinung ignoriert und ohne Erlaubnis fortfährt, kann der Versandort unabhängig von der Situation festgelegt werden. Seit ich Zeitarbeitnehmer bin, habe ich Menschen verlassen, aber ich möchte, dass Sie mir für einen Moment vergeben.

Wenn dies gesagt ist, kann das nächste ein Java-Sprachprojekt sein. Das bedeutete, dass ich die Java-Sprache neu lernen musste. Ich dachte jedoch, ich würde keine Bücher verwenden, die mit der Java-Sprache zu tun haben, also ließ ich sie bei meinen Eltern. Ich konnte nicht anders, also beschloss ich, mehr aus dem ersten Schulbuch zu kaufen. Wie viele Bücher und wie viele Arten von Grundschulbüchern soll ich kaufen ... Ich plane, wenn möglich ein Kindle-Buch zu kaufen, aber es ist schwer zu sehen, also ist es definitiv ein Papierbuch. Es wird keine guten Maßnahmen geben.

Hauptthema

Wenn Sie für Anfänger programmieren, brauchen Sie definitiv keine große IDE. Wenn ich Zeit habe, eine solche Umgebung aufzubauen, würde ich gerne ein wenig Zeit zum Lernen verwenden. Wie ist das? Da ich Vim nicht beherrschen konnte, konnte ich es immer noch nicht wie eine IDE erstellen. Bei dieser Gelegenheit möchte ich Language Server Protocol (Abkürzung: LSP) vorstellen.

Was ist LSP?

Ich denke, es ist eine Funktion, die den Eingabevorgang mit automatischer Vervollständigung abschließt. Vor diesem Hintergrund habe ich beschlossen, es einzuführen.

Ich möchte nicht schwierig sein

Die Vorbereitung einer IDE-Umgebung ist mühsam, daher möchte ich eine Umgebung mit nur einer kleinen Änderung an der bereits installierten Vim erstellen. Deshalb möchte ich nicht schwierig oder zeitaufwändig sein. Daher habe ich mich für das [Plug-in von mattn zur Reduzierung der Installationskosten] entschieden (https://qiita.com/mattn/items/e62b9f16bc487a271a7f).

Aktuelle LSP-Einführung

Da dies einfach ist, habe ich mich entschlossen, wie von Mr. mattn erläutert fortzufahren.

Annahme

Die Plug-In-Verwaltung verwendet minpac.

Plug-In-Einführung

Ich dachte, es wäre vorerst einfach einzuführen, ob eine Zeile ausreichen würde oder zwei Zeilen benötigt würden.

vimrc


call minpac#add('prabirshrestha/vim-lsp')
call minpac#add('mattn/vim-lsp-settings')

Dann in der Ex-Befehlszeile,

Befehl


call minpac#update()

Eintippen. Auf diese Weise wird das Plug-In eingeführt. Dies allein macht es sehr bequem.

Umschreiben der Einstellungsdatei

Sie müssen auch an vimrc schreiben.

vimrc


"Möglichkeit, Fehler in Echtzeit anzuzeigen, wenn sich Dateien ändern
let g:lsp_diagnostics_enabled = 1
let g:lsp_diagnostics_echo_cursor = 1

"Einstellung zum automatischen Anzeigen des Popups für die Eingabe
let g:asyncomplete_auto_popup = 1
let g:asyncomplete_auto_completeopt = 1

"Verzögerung bis Popup angezeigt wird
let g:asyncomplete_popup_delay = 200

"Einstellung zum Aktivieren von textEdit, einer LSP-Spezifikation
let g:lsp_text_edit_enabled = 1

let g:lsp_signs_enabled = 1
let g:lsp_diagnostics_echo_cursor = 1

mattn scheint die Konfigurationsdatei (https://mattn.kaoriya.net/software/vim/20191231001537.htm) [aufgeteilt] zu haben, aber ich habe sie nicht. Deshalb schreibe ich an vimrc, aber ich denke, dass es kein Problem gibt.

Mutterschiff ist auch wichtig

vim-lsp scheint das Mutterschiff zu sein, und wenn Sie es nicht einschließen, erhalten Sie eine Fehlermeldung.

Error


Error detected while processing User Autocommands for "lsp_setup":
E117: Unknown function: lsp#register_server

vim-lsp_Err.jpg

Ich möchte Fehler vermeiden

Ich habe eine Fehlermeldung erhalten, weil ich mit der Arbeit fortgefahren bin, ohne das Plug-In des Mutterschiffs installiert zu haben.

Error


BufRead Autocommands for "*.java"..FileType Autocommands for "java"..function <SNR>8_vim_lsp_load_or_suggest[105]..
User Autocommands for "lsp_setup"Bei der Verarbeitung von wurde ein Fehler festgestellt:
E117:Unbekannte Funktion: lsp#register_server

lsp-setup-filetype_Err.jpg

Stellen Sie sicher, dass Sie die Erklärung richtig lesen.

Andere

minpac-update_err.jpg

Ich habe einen Fehler im Plugin zum Verwalten von Plugins erhalten, der anscheinend bereits [behoben] wurde (https://github.com/k-takata/minpac/issues/1).

Öffnen Sie die Java-Datei

Öffnen Sie eine Datei mit der Erweiterung * .java. Und

Ex-Befehl


LspInstallServer

installj-eclipse-jdt-ls.jpg

Da der Mechanismus so ist, dass die der Programmierdatei entsprechende Datei installiert ist, können Sie "Ja" drücken und warten, bis die Installation abgeschlossen ist.

java-installer-jdtls.jpg

Abgeschlossen.

Persönlich ist der Zeichencode seltsam ... aber ich werde ihn zu einem anderen Zeitpunkt überprüfen. Es sollte UTF-8 gewesen sein ...

Nicht kompatibel mit C ++

Ich bin nicht sicher, aber es scheint, dass einige Programmierdateien nicht installiert werden können.

Erweiterung .cpp

Öffnen Sie die C ++ - Sprachdatei

cpp-ls-clangd.jpg

Ich folgte ihm gehorsam, weil es eingeführt werden konnte.

install-clangd.jpg

Natürlich ja.

unxz-command-not-found.jpg

Die Installation ist jedoch fehlgeschlagen. Dies scheint daran zu liegen, dass der erforderliche Befehl nicht gefunden wurde. Daher liegt möglicherweise ein Problem mit meiner Umgebung vor, aber jetzt muss ich nur noch die Java-Umgebung vorbereiten, sodass ich sie verschiebe.

Nutzen Sie nicht die tatsächlichen Vorteile.

Seltsam. Die automatische Vervollständigung funktioniert überhaupt nicht.

Popup wird überhaupt nicht angezeigt.

Seltsam.

Für die Einstellungen von mattn

vimrc


if empty(globpath(&rtp, 'autoload/lsp.vim'))
・
・
・

function! s:on_lsp_buffer_enabled() abort
・
・
・

augroup lsp_install
・
・
・

Wurde geschrieben, aber ist das da? Durch diese Beschreibung wurde die Einstellungsdatei zerstört ...

Lösung (Popup-Anzeige)

Ich brauchte ein separates Plug-In.

asyncomplete.vim Die Beschreibung ist in Englisch, daher habe ich nicht gedacht, dass es sich um den erforderlichen [Plug] handelt (https://github.com/mattn/vim-lsp-settings#asyncompletevim).

vimrc


"Popup-Menüanzeige automatisch vervollständigen
call minpac#add('prabirshrestha/asyncomplete.vim')
"Quelle automatisch vervollständigen
call minpac#add('prabirshrestha/asyncomplete-lsp.vim')

Es scheint, dass diese beiden Typen benötigt werden.

asyncomplete.jpg

Es ist ein wenig unangenehm mit einem unbeabsichtigten Popup-Display. In diesem Beispiel möchte ich "System" eingeben, aber wenn ** S ** eingegeben wird, wird automatisch "Saf ~ Nanchara" eingegeben. Unangemessene Unannehmlichkeiten. Was ich tun möchte, ist, wenn ich "S" eingebe, wird nichts eingegeben und ich möchte, dass die Kandidaten auftauchen. Ich bin in Schwierigkeiten.

asyncomplete.vim Bei der Anzeigemethode scheint nvim besser zu sein. Ich werde den Hauptkörper jetzt nicht ändern.

Vorerst abgeschlossen

Obwohl ich die oben genannten Beschwerden habe, werde ich sagen, dass ich es vorerst eingestellt habe. Es ist noch weit davon entfernt, das Studium der Java-Sprache nur mit vim selbst abzuschließen, aber dieser Artikel endet damit. Schließlich möchte ich in der Lage sein, auszuführen und zu debuggen.

das ist alles.

Recommended Posts

Stellen Sie mit vim die Popup-Anzeige für die Java-Sprache ein.
[Für Anfänger] Mindestbeispiel für die Anzeige von RecyclerView in Java
Anfänger spielen Janken-Spiele in Java
Firestore-Daten in RecyclerView [Java] anzeigen
[Für Anfänger] Führen Sie Selenium auf Java aus
Thread-sicherer Prozess in Java-Sprache
Einstellungen für das SSL-Debugging in Java
Behandeln Sie die Geschäftslogik für eine Reihe von Entitäten in einer Java-Klasse
Was ist eine Klasse in der Java-Sprache (3 /?)
Erste Schritte für tiefes Lernen in Java
Wichtige Punkte für die Einführung von gRPC in Java
Was ist eine Klasse in der Java-Sprache (1 /?)
[Java] Setzen Sie AdoptOpen JDK in STS (Eclipse)
Was ist eine Klasse in der Java-Sprache (2 /?)
Nachrichtendialog mit Java anzeigen (persönliches Memo)
Überprüfen Sie die für den laufenden Java-Prozess festgelegten Optionen
ChatWork4j für die Verwendung der ChatWork-API in Java
Techniken zum Lesen von Java-Quellcode in Eclipse
So zeigen Sie eine Webseite in Java an
Festlegen des HTTP-Keep-Alive-Timeouts im Java-HTTP-Client
Text als ASCII-Grafik in Java anzeigen (jfiglet)
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
Zeigen Sie "Hello World" im Browser mit Java an
Zeigen Sie "Hello World" im Browser mit Java an
Einführung des NLP4J- [000] Natural Language Processing Index in Java
Vergleichen Sie die PDF-Ausgabe in Java für Snapshot-Tests
Aktivieren / Deaktivieren von SNI in Java für jede Kommunikation
Punkte, die bei Java beachtet werden müssen, sind gleich
Für JAVA-Lernen (2018-03-16-01)
Partisierung in Java
Änderungen in Java 11
2017 IDE für Java
Umfangsrate in Java
Java für Anweisung
FizzBuzz in Java
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
Legen Sie JAVA_HOME für den Root-Benutzer in AWS Ubuntu16.04 Server fest
Dinge, auf die Sie bei der zukünftigen Java-Entwicklung achten sollten
Ein Hinweis zum Initialisieren von Feldern im Java-Lernprogramm
Abrufen von Gebietsschemaobjekten für alle in Java verfügbaren Gebietsschemas
Einführung in Java für Anfänger Grundkenntnisse der Java-Sprache ①
Dies und das zum Bearbeiten von ini in Java. : inieditor-java
[Java] Erläutert die ConcurrentModificationException, die in java.util.ArrayList für Neulinge auftritt
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
[memo] RSA-Schlüsselpaar für SSH in Java generieren
"Die Sprachunterstützung für Java-Server ist in den letzten 3 Minuten fünfmal abgestürzt. Der Server wird nicht neu gestartet."