2010-10-08 19 views
6

quando viaggio tra i file utilizzando una scorciatoia su un file di percorso, quindi sembra che io non viaggi solo tra i file.Vim viaggio nel file di percorso tramite collegamento, direttamente, sempre

vado in un file utilizzando >, all'interno di quel file cambio posizione del cursore e faccio qualcosa, quindi premo <. ma invece di andare al file precedente, prima va nella posizione originale in cui ero quando ho inserito il file, quindi ho bisogno di premere di nuovo < per arrivare effettivamente al file precedente.

questo è un fastidio perché non mi consente di modificare la posizione memorizzata all'interno del file di destinazione. rimane sempre lo stesso, quindi entro sempre nello stesso posto, in più questo richiede due clic per viaggiare quando ne è necessario uno solo. e questo rende il comportamento del sistema più confuso.

questo problema sembra sorgere solo quando inserisco file molto grandi. con i piccoli la posizione funziona bene.

come faccio a far passare il pulsante < al file precedente in cui ero, direttamente, sempre?

p.s.
è utilizzare il seguente mappatura nel mio vimrc:
noremap > gf
noremap < <Co>

ho provato sostituendo <Co> con < C-6 >, ma che non funziona, per un po ' ragionare.

risposta

3

È possibile utilizzare :bp nella tua mappatura (precedente buffer):

:noremap < :bp<CR> 
+0

Se vado in un file, poi di nuovo, poi andare in un altro file, poi quando cerco di tornare indietro, vado nel file che sono andato nella prima volta. Quindi qualcosa non va. –

3

Mapping per <C-6> non funziona neanche per me, ma <C-^> fa.

+0

ma se viaggio in un file di percorso usando: e ~/somepathfile e poi ritorna ad un altro, poi quando provo a tornare indietro non riesco a passare dove ho inserito un nuovo file con il metodo: e. –

0

È possibile provare la bufmru plugin, funziona come Ctrl-^, utilizzando la chiave space, ma consente anche di dribblare due buffer più recentemente con i tasti f e b. Queste sono ovviamente mappature predefinite.

3

Mi sembra che si stia cercando un modo per spostarsi direttamente su un certo buffer anziché su un buffer precedente. L'utilizzo di <C-o> ti riporta all'indietro attraverso il jumplist, motivo per cui perdi posizione nel file modificato.

I file di percorso di solito hanno una determinata estensione? Se non si poteva dare loro un'estensione unica e provare un qualcosa di mappatura del genere:

noremap < :b *.pf 

.pf essere qualunque estensione che si sceglie. Questo passa al buffer con quel nome.

Sfortunatamente se si ha più di un buffer con quell'estensione fallirà, nel qual caso è probabilmente meglio fare un rapido :b seguito dal nome.

Io uso questa mappatura per quando sto lavorando con una manciata di buffer:

nnoremap <Leader>ls :ls<CR>:b 

Usando questo posso solo colpire ,ls, cerca nella lista, digitare il buffer che voglio e premere Invio per spostarsi a quel buffer

Problemi correlati