Quero classificar o seguinte com base em suas chaves
case IndexError:
PyErr_SetString(PyExc_IndexError, exc.str.c_str());
break;
case ValueError:
PyErr_SetString(PyExc_ValueError, exc.str.c_str());
break;
case RuntimeError:
PyErr_SetString(PyExc_RuntimeError, exc.str.c_str());
break;
case IOError:
PyErr_SetString(PyExc_IOError, exc.str.c_str());
break;
então se torna
case IOError:
PyErr_SetString(PyExc_IOError, exc.str.c_str());
break;
case IndexError:
PyErr_SetString(PyExc_IndexError, exc.str.c_str());
break;
case RuntimeError:
PyErr_SetString(PyExc_RuntimeError, exc.str.c_str());
break;
case ValueError:
PyErr_SetString(PyExc_ValueError, exc.str.c_str());
break;
Basicamente, estou apenas classificando as linhas
case IOError:
case IndexError:
case RuntimeError:
case ValueError:
O conteúdo das outras linhas (as que não começam com a case
) não importa, mas quero que elas sejam classificadas com os casos.
multiple-lines
sort
Henricus V.
fonte
fonte
case
s é semelhante, você pode regenerar tudo. Se os ordenados*Error
s (de umenum
? Talvez executado atravéssort(1)
?), Então fazer uma macro que converteXError
paracase XError: PyErr_SetString(PyExc_XError, exc.str.c_str()); break;
e executá-lo para todos os valores de enumeração.Respostas:
A maneira mais fácil: junte as linhas nos blocos lógicos antes de classificar.
Em detalhe:
:'<,'>s/\n /^A/
gv
:'<,'>sort
gv
:'<,'>s/^A/\r /g
^A
acima é o caractere Ctrl-A(ASCIISOH
). Pode ser qualquer caractere que não apareça nas linhas a serem classificadas, mas Ctrl-Ase encaixa na conta. Você pode inseri-lo como Ctrl-vCtrl-a.fonte
Idéia: Vamos juntar o
n
número de linhas em maiúsculas e minúsculas em uma única linha. Siga o processo para todos os casos. Em seguida, use a classificação para classificar os casos. Em seguida, recorte essas linhas e recue-as.Passos:
1) Associe as
n
linhas a seguircase
digitando isso. (no seu caso, n é 3)2) Selecione todos os casos usando o modo visual. Pressione
v
otV
para selecionar todos os casos. Pressione:
. Aparecerá como:'<,'>
. Digite a classificação.3) Coloque as linhas do caso embaixo. Selecione-os novamente pressionando gv.
Isso divide as linhas do caso. Se as linhas não forem recuadas corretamente, você poderá alinhá-las selecionando
gv
e depois==
.Isso funciona para qualquer número de linhas, desde que você use as etapas personalizadas para sua finalidade.
fonte