VIM Comment puis-je forcer VIM à organiser des mots selon mon choix?

0

Bien j'écris et j'apprends. Je veux juste écrire du texte de cette façon ....

- First line.
  Second line.
  Third line.

Mais le problème est que les lignes commencent de cette façon ...

- First line.
Second line.
Third line

Tu vois la différence? Eh bien, j'ai fait quelques recherches et trouvé un fil dans superuser qui recommande d'utiliser: set smartindent. Je l'ai fait Ça marche. Mais le problème est que cela force Vim à suivre d'où la dernière ligne est commencée. Maintenant, comme je commence les lignes à partir du bord gauche de l'éditeur, Vim commence chaque nouvelle ligne comme indiqué dans le deuxième exemple. Maintenant, la question est de savoir comment puis-je écrire des lignes comme je l’ai montré dans le premier exemple?

Hellboy
la source

Réponses:

0

Pourquoi attendez-vous de l'éditeur qu'il choisisse toujours le bon retrait? En configurant un particulier retrait cadre (comme le bon et universel :set smartindent ), vous obtenez quelque chose qui fonctionne la plupart du temps. Pour les autres cas, vous pouvez toujours mettre en retrait manuellement (avec <Tab>, en supposant que vous avez correctement :set tabstop=... expandtab etc.), ou modifiez le retrait après coup avec >> et <<.

Si vous avez vraiment une syntaxe particulière dans laquelle les règles d'indentation sont plutôt simples et déterministes (et qu'aucun des paramètres d'indentement par défaut ne fonctionne tout le temps), vous devez écrire une commande personnalisée. indentexpr (cp. :help indent-expression ).

Étant donné que votre exemple concerne la mise en forme du texte, cela ne s'applique pas à moi, et vous êtes vraiment mieux avec 'smartindent' et des corrections manuelles.

Ingo Karkat
la source
0

Au lieu de 'smartindent', je préfère définir les options 'autoindent', 'formatlistpat' et 'formatoptions' de manière appropriée. Par exemple:

" set up pattern to match list bullets and numbers
let &l:formatlistpat='^\s*\%(\d\+[\]:.)}\t ]\d\@!\|[*-]\)\s*'
" automatically format numbered or bulleted lists
setlocal formatoptions+=n
setlocal autoindent

Dans la première commande, vous pouvez remplacer les caractères "bullet" de votre choix dans le [*-] groupe.

Ceci gardera le retrait pour vous, et l'appliquera même pour vous avec gqip par exemple, mais vous devrez supprimer le retrait vous-même lorsque vous entrez une nouvelle ligne pour laquelle vous ne souhaitez pas avoir le format de liste.

Ben
la source
0

Si votre motivation est d'écrire des listes de textes, vous devriez vérifier plugin vimwiki , en enregistrant les options de format vim pour d’autres utilisations, en tant que codage.

mMontu
la source