Eu estou olhando os comandos quickref do vim help para mover o cursor. As linhas a seguir me confundem porque acho que as duas funcionam da mesma maneira. Alguém poderia me elaborar a diferença com um exemplo.
N w N words forward
N W N blank-separated WORDS forward
A mesma pergunta é verdadeira para e e E também.
Na verdade, é bastante simples,
w
apenas pula para a próxima palavra, mas qualquer tipo de pontuação ou espaço em branco divide as palavras.W
é como o comando da próxima palavra de força industrial, as palavras são delimitadas apenas por espaços em branco, seja tab, espaço ou nova linha.w
também para na pontuação delimitadora, caso você queira lidar com isso.Acho a diferença útil com mais freqüência nos nomes de host:
birdman.cartoons.fictional.com # Fictional host
Com
w
, você para em cada parte do nome do host e nos pontos.W
apenas pula o nome do host inteiro e entra no#
. Isso também se aplica ad
ec
para excluir e alterar palavras.Se posicionado no início da linha acima, se você quiser substituir
birdman.cartoons
por outra coisa,3cw
substitua as duas primeiras partes e o ponto no meio. Você não poderia fazê-loW
sem redigitar o nome do host inteiro.fonte
É uma diferença que é melhor entendida considerando-se como a pontuação pode afetar o conceito de Vim do que delimita uma palavra.
No caso deste exemplo de texto:
wfelizmente pulará para a primeira letra de cada palavra na primeira linha, pois só há espaço para negociar. Ele falhará mal na linha 2 com a pontuação, surgindo nas primeiras letras de cada palavra e nas vírgulas e traços. Para passar de uma palavra para outra na linha 2, você precisará usarShiftw 1 .
1. Mesmo assim, o Vim vê "é-nota-vírgula" como uma única palavra.
fonte
A diferença pode ser encontrada nas páginas de ajuda internas do vim. Vamos primeiro obter uma descrição de w e W com
:help
w ou:help W
:Agora queremos saber quais são as definições de palavra e PALAVRA. Procure o manual novamente com
:help word
e:help WORD
, nós os encontramos.a sequence of letters, digits and underscores
, oua sequence of other non-blank characters, separated with white space
(espaços, tabulações,). Isso pode ser alterado com a opção 'iskeyword'. Uma linha vazia também é considerada uma palavra.a sequence of non-blank characters, separated with white space
. Uma linha vazia também é considerada uma PALAVRA.fonte