Ogni volta dopo aver caricato un cscope.out in Vim, ho bisogno di cambiare "pwd" di Vim nella stessa directory in cui cscope.out è sotto, il che potrebbe essere dovuto al fatto che il cscope usa il percorso relativo durante la generazione del file di tag. Quindi, se c'è un modo per forzare cscope ad usare il percorso assoluto nel suo file di tag - cscope.out, allora sarà indipendentemente dal fatto che il pwd della tua sessione Vim sia lo stesso della directory in cui si trova il file cscope.out.Come consentire a cscope di utilizzare il percorso assoluto nel file cscope.out?
risposta
Durante l'importazione cscope.out, è possibile fornire il prefisso, vale a dire
:cscope add /path/to/cscope.out /path/to/src/code
Poi le ricerche si trasformerà in su come:
Cscope Tag: foobar
# line filename/context/line
1 21 /path/to/src/code/foobar_file.c
@Aaron H. è giusto.
Per la mia configurazione ho usato il plugin cscope_maps.vim e modificate le seguenti righe:
40 " add any cscope database in current directory
41 if filereadable("/usr/project/cscope.out")
42 cs add /usr/project/cscope.out /usr/project
43 " else add the database pointed to by environment variable
44 elseif $CSCOPE_DB != ""
45 cs add $CSCOPE_DB
46 endif
Dove "/ usr/progetto" è la posizione del file cscope.out e il percorso assoluto che voglio uso.
Il cscope tutorial ha una soluzione molto semplice per questo problema:
11.Try impostare la variabile
$CSCOPE_DB
ambiente per puntare a un database Cscope si crea, in modo da non sempre bisogno di lanciare Vim in la stessa directory del database. Ciò è particolarmente utile per i progetti in cui il codice è suddiviso in più sottodirectory. Nota: per questo al lavoro, si dovrebbe costruire il database con percorsi assoluti: cd a /, e farefind /my/project/dir -name '*.c' -o -name '*.h' > /foo/cscope.files
Poi gestita Cscope nella stessa directory del file cscope.files (o usare 'cscope /foo/cscope.files -I), quindi impostare ed esportare la variabile $ CSCOPE_DB, puntando al file cscope.out che risulta):
cd /foo cscope -b CSCOPE_DB=/foo/cscope.out; export CSCOPE_DB
(l'ultimo comando di cui sopra è per Bourne/Korn/Bash shell: ho dimenticato come esportare le variabili in shell basate su csh, sin ce li evito come la peste).
Ora dovresti essere in grado di eseguire "vim -t foo" in qualsiasi directory sulla tua macchina e fare in modo che Vim salti direttamente alla definizione di "pippo". Tendo a scrivere piccoli script di shell (che definiscono ed esportano CSCOPE_DB) per tutti i miei diversi progetti, che mi consente di passare da uno di essi all'altro con un semplice comando 'source projectA'.
È possibile creare i cscpoe.files utilizzando percorsi assoluti ai file, ecco il mio script per generare i miei database cscope
#!/bin/sh
find $PWD -name '*.[ch]' -exec echo \"{}\" \; | sort -u > cscope.files
cscope -bvq
cscope.files Poi basta vim e forse: cs aggiungere cscope.out , anche se il mio plugin cscope lo fa automaticamente. Quindi cerco i file che mi interessano e li salgo con gf.
È possibile chiedere a vim di interpretare i percorsi in cscope.out relativo alla posizione del file cscope.out impostando l'opzione cscoperelative
. Da :help csre
:
Se 'cscoperelative' è impostato, allora in assenza di un prefisso dato a cscope (prefisso è l'argomento -P possibilità di cscope), nome di base posizione cscope.out (solitamente il directory radice del progetto) verrà utilizzato come prefisso per la creazione di un percorso assoluto. L'impostazione predefinita è disattivata. Nota: questa opzione è valida solo quando cscope (cscopeprg) è inizializzato senza un percorso prefisso (-P).
Esempi
: set csre
: impostate nocsre
Questa dovrebbe essere la risposta accettata poiché da una prospettiva vim + cscope è di gran lunga la soluzione più semplice. La ringrazio per la risposta! – janjust
Nota: dal momento che non sono abbastanza alti per aggiungere ancora commenti: Aaron e Neha di risposte sono state utile per me per conoscere meglio la intero sistema, ma la risposta migliore e più diretta alla domanda è attualmente al 3 ° posto ed è quella di Shayan.
Il richiedente chiedeva di più ottenere il percorso assoluto da parte di cscope, non lavorarci intorno usando (il molto capace e potente) vim.
Nota2: C'è un altro modo per apportare un singolo cambiamento in vim e ottenere lo stesso risultato di Neha.
:set cscopeprg=cscope -P path_to_relative_base
mi piace Neha di meglio, ma in questo modo è più vicino alla modifica cscope piuttosto che le impostazioni di Vim, se questo è ciò che si desidera. E questo è l'unico modo che ti permette di muovere il cscope db ovunque.
- 1. Come convertire il percorso assoluto nel percorso relativo in PowerShell?
- 2. Ottenere il percorso assoluto di un file
- 3. file assoluto Percorso
- 4. Usa percorso assoluto o relativo percorso nel Reagire percorso
- 5. file batch: ottenere il percorso assoluto
- 6. Come ottenere il percorso assoluto di un file usando tkFileDialog?
- 7. Percorso file assoluto all'URL relativo
- 8. Come consentire "Caratteri illegali nel percorso"?
- 9. Come rendere CommonsMultipartFile dal percorso file assoluto?
- 10. come ottenere il percorso assoluto per il file symlink?
- 11. WIN32_FIND_DATA - Prendi il percorso assoluto
- 12. assoluto o relativo Percorso file web.config in
- 13. Percorso assoluto Hacc.
- 14. Come ottenere il percorso assoluto del nome file javascript corrente
- 15. Come ottenere il percorso assoluto per il file nella cartella/risorse nel progetto
- 16. comando xcodebuild con percorso assoluto a SDK
- 17. trovare il percorso assoluto di un file da python
- 18. Ottieni il percorso assoluto dell'app django
- 19. cscope: Come usare cscope per cercare un simbolo usando la riga di comando?
- 20. Percorso assoluto relativo (Eclipse, JSP)
- 21. Percorso relativo al percorso assoluto in C#?
- 22. differenza nel percorso fisico, percorso root, percorso virtuale, percorso virtuale relativo, percorso dell'applicazione e percorso assoluto?
- 23. Come faccio a consentire il trascinamento in un percorso circolare?
- 24. Ottenere il percorso assoluto del file eseguibile, utilizzando C#?
- 25. Come ottenere il percorso file assoluto dal percorso di base e relativo contenente ".."?
- 26. Conversione percorso assoluto al relativo percorso C#
- 27. Come arrestare Excel memorizzando il percorso assoluto di un XLA?
- 28. Come trovo il percorso assoluto per un'app di gioco?
- 29. Ottieni il nome file e l'estensione da un percorso assoluto
- 30. git: Ottieni il percorso assoluto del file, relativo al repository
inoltre, esegui 'export CSCOPE_DB = $ (pwd)/cscope.out' nella stessa dir che lo script esegue – Paschalis