Utilizzo di Vim 6.0. Dire che sto modificando questo file:Come ordinare le colonne numeriche e letterali in Vim
sdfsdg
dfgdfg
34 12
2 4
45 1
34 5
Come si ordina la seconda colonna?
Utilizzo di Vim 6.0. Dire che sto modificando questo file:Come ordinare le colonne numeriche e letterali in Vim
sdfsdg
dfgdfg
34 12
2 4
45 1
34 5
Come si ordina la seconda colonna?
Se si dispone di shell decente disponibile, selezionare i numeri ed eseguire il comando
:'<,'>!sort -n -k 2
se si digita intenzione di questo in modalità visiva, dopo aver digitato il colon, i marcatori '<,'> sarà appead automaticamente, e dovrai solo digitare il resto.
Questo tipo di comandi (: [motion]!) È chiamato filtering. Potete saperne di più consultando l'aiuto di vim:
:h filter
un esempio di questo per favore: '<,'>! Sort -n -k 2? – vehomzzz
Ho anche un errore: E20: Mark non è impostato – vehomzzz
Questo è un comando in modalità visuale - Pavel usa 'V' per selezionare un intervallo, quindi digita': ', che inserisce automaticamente l'intervallo di selezione visiva' '<,'> ', e poi digitato il comando attuale '! sort -n -k 2'. Ovviamente puoi specificare il range in qualsiasi modo - vedi ': help range' se sei curioso. – Cascabel
Ordina tutte le linee sulla seconda colonna N utilizzando Vim sort
di comando, ad esempio,
:sort /.*\%2v/
Riferimento: vimtips.txt
Wow, vim ha una procedura di smistamento interna! Quanto è grande quel bastardo ?! –
Nessun comando di ordinamento in vim 6.0 :( – vehomzzz
Qualsiasi motivo per cui non è possibile aggiornare? Vim.org dice che 7.2 è l'ultima versione stabile. –
Per vim7 vorrei andare per:
:sort n /.*\s/
Ciò ordinare i numeri ignorando testo corrispondente dato regexp. Nel tuo caso è la seconda colonna.
ordine di 2a colonna selezionandolo in modo visivo (es controllo + v), quindi eseguire:
!sort
o per ordinare terza colonna
sort -k 3
o
:sort /.*\%3v/
In alternativa, selezionare le linee che si desidera ordinare utilizzando il comando Shift + V. Quindi immettere
!sort -k 3n
o utilizzare il codice qui sotto per dire a Vim di saltare le prime due parole in ogni linea e ordinare su qualsiasi seguente:
:%sort /^\S\+\s\+\S\+\s\+/
o IE ordina per 8 linea:
:sort /.*\%55v/
La specifica 'virtuale' è il numero assoluto di colonne, che considera spazi + tab come carattere singolo (in breve, non conta le tabulazioni come otto spazi),
modo per ordinare in base all'ultima colonna:
:%sort /\<\S\+\>$/ r
Questa dovrebbe essere la risposta. 'sort!' è bello pure. – firedev
correlati, se il secondo (o terzo, quarto ...) colonna è la prima colonna con un numero decimale, si noti che si potrebbe usare semplicemente ': sort n', come dice l'aiuto:" Con [n] ... l'ordinamento viene fatto sul primo numero decimale nella riga. .. "Questo non si applica al tuo caso, ma potrebbe essere di qualcun altro. – Rabarberski