[LINUX] GNU GLOBAL (gtags) + α in Go, Ruby, Python

global.png

Überblick

Der Pyser-Parser-Import in GNU GLOBAL sollte das Lesen von Quellcode unglaublich schnell machen

Eine sehr nützliche Funktion wurde eingeführt, also habe ich die Linux-Version geschrieben. (Das obige ist Mac) Schließlich werden auch die Einstellungen für Emacs veröffentlicht.

GNU GLOBAL Installation

Bitte überprüfen Sie hier die neueste Version. Getting GLOBAL

homebrew or linuxbrew

brew install global

Quellinstallation

VERSION=6.4
wget http://tamacom.com/global/global-${VERSION}.tar.gz
tar xvf global-${VERSION}.tar.gz
cd global-${VERSION}
./configure
make
make install

GNU GLOBAL Einstellungen

cp /usr/local/share/gtags/gtags.conf /etc/

Sie müssen gtags.conf diesmal nicht ändern, aber wenn der Pfad von pylements-parser.la unterschiedlich ist, ändern Sie ihn entsprechend. Wenn Sie die GNU GLOBAL-Einstellungen für jeden Benutzer angeben möchten, können Sie die Einstellungen überschreiben, indem Sie "gtags.conf" in "$ HOME / .globalrc" platzieren.

Python-Installation

Ich denke, für die meisten Distributionen ist Linux vorinstalliert. Wenn es nicht installiert ist, installieren Sie Python über den Paketmanager jeder Distribution.

Ich habe den Vorgang mit Python 2.6.6 bestätigt.

Rohrinstallation

pip ist ein Paketverwaltungssystem zum Installieren und Verwalten von in Python geschriebener Softwarepaketen.

curl -kL https://bootstrap.pypa.io/get-pip.py | python

Installieren Sie Pylements

Pylements ist ein Syntax-Textmarker für verschiedene Sprachen.

pip install pygments

Funktionsprüfung

Hier finden Sie Informationen zur Tag-Generierung und zur Tag-Referenz. Der Pyser-Parser-Import in GNU GLOBAL sollte das Lesen von Quellcode unglaublich schnell machen

Soweit ich sehen kann, war die Tag-Generierung in Ruby, Python und Go erfolgreich, aber nur die Referenz des Go-Tags mit dem Befehl "global" funktionierte nicht. (Nichts wird standardmäßig ausgegeben, auch wenn es ausgeführt wird) Da jedoch die Go-Tag-Referenz von den folgenden helm-g-Tags erfolgreich ist, scheint es, dass nur die Tag-Referenz vom Befehl "global" nicht funktioniert.

Verwendung von GNU GLOBAL aus Befehlen, Vim, Emacs

gtags.vim und gtags.el befinden sich in/ usr / local / share / gtags /.

ll /usr/local/share/gtags/gtags.{vim,el}
-rw-r--r-- 1 root root 36494 Sep 17 19:50 /usr/local/share/gtags/gtags.el
-rw-r--r-- 1 root root 16170 Sep 17 19:50 /usr/local/share/gtags/gtags.vim

+α for Emacs

Oben wird gtags.el vorgestellt, aber hier ist eine bequemere helm-gtags.el. Bitte installieren Sie Emacs 24.3, helm, helm-gtags, go-mode.

Klicken Sie hier für Helm-Gtags. helm-gtags - Emacs JP

(require 'helm-gtags)          
(add-hook 'go-mode-hook (lambda () (helm-gtags-mode)))
(add-hook 'python-mode-hook (lambda () (helm-gtags-mode)))  
(add-hook 'ruby-mode-hook (lambda () (helm-gtags-mode)))                         
(setq helm-gtags-path-style 'root)                       
(setq helm-gtags-auto-update t)
(add-hook 'helm-gtags-mode-hook
          '(lambda ()                                                                   
             (local-set-key (kbd "M-g") 'helm-gtags-dwim)
             (local-set-key (kbd "M-s") 'helm-gtags-show-stack)
             (local-set-key (kbd "M-p") 'helm-gtags-previous-history)
             (local-set-key (kbd "M-n") 'helm-gtags-next-history)))                        

Danach können Sie Emacs starten, den Cursor auf das Ziel bewegen und die Funktion mit M-g überspringen.

Das Bild oben auf der Seite ist Emacs + helm-gtags, das sich auf das Go-Tag bezieht.

Jetzt können Sie Funktionen in Python, Ruby, Go ohne spezielle Emacs-Einstellungen überspringen, indem Sie den Befehl gtags einmal ausführen!

Ich bin beeindruckt.

Referenz

Recommended Posts

GNU GLOBAL (gtags) + α in Go, Ruby, Python
Gruppierungskombination in Python / Ruby / PHP / Golang (Go)
Behandle Primzahlen mit Python / Ruby / PHP / Golang (Go)
Überlappende Kombinationen mit Obergrenzen in Python / Ruby / PHP / Golang (Go)
Hierarchie, Reihenfolge, (doppelte) Kombination in Python / Ruby / PHP / Golang (Go)
Mehrstufige Auswahl (Go / C # / Ruby / Python)
Verwendung globaler Variablen in Python-Funktionen
[Python3] Definieren Sie globale Variablen in einer Funktion dynamisch
Unterschiede zwischen Ruby und Python im Umfang
Großer Unterschied in der Leistung von Ruby, Python und httpd
[Zusammenfassung des Scrapings] | Python Node.js PHP Ruby Go VBA | Scraping von Yahoo Top in 6 Sprachen
Unterschied zwischen nicht lokal und global in Python
Referenz der INI-Datei in Python oder Ruby
Versuchen Sie etwas wie Python für-else in Ruby
Wie schreibe ich Ruby to_s in Python
Implementieren Sie die Wiederholung und Erkundung von Gedenkstätten in Python und Go
Installieren Sie Python 3.5.1 + numpy + scipy + α in einer Windows-Umgebung
J / N-Verarbeitung mit Bash, Python und Go
Erstellen Sie in Python ein Paket mit globalen Befehlen
Symbolischer Gruppenname für reguläre Ausdrücke in Python / Ruby
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Python mit Go
Epoche in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
Janken in Ruby
SQLite in Python
Schritt AIC in Python
Der Algorithmus dieser Woche: Berechnen Sie den kürzesten Weg! (Permutationsiterator in Ruby / Python / C # / VB / Go)
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python