2009-06-03 5 views
4

Je suis confus à propos de ceux-ci dans VIM. Certaines choses doivent être réglées et d'autres laissées. Et, comment puis-je vérifier une certaine option. Je sais que c'est une option car j'utilise set pour le changer.VIM: Options, variables et conversion entre les deux

Par exemple, comment vérifier si l'option de type de fichier courante est java?

Répondre

6

: définir est utilisé pour afficher les valeurs d'option, la définition des valeurs d'option explicitement et les basculer, alors que : laisser est utilisé pour définir les valeurs des options comme un résultat d'une expression précédente (lorsque vous définissez la valeur de l'option en fonction d'une variable). Naturellement, dans les scripts vim, vous allez utiliser : laissez de plus.

Par exemple:
vous filetype normalement mis à

:set ft=batch 

mais vous pouvez aussi

:let varijabla='batch' 
:let &filetype=varijabla 
+0

S'il vous plaît, quelle est la différence entre ** variable ** et ** option ** dans Vim sous le capot? – nn0p

9

Vous venez d'obtenir ceci en recherchant un peu plus: Pour obtenir la valeur d'une option, préfixez l'option avec un &.

donc, ce qui précède peut être fait comme

if &filetype == 'java' 
11

Options de

Toutes ces options changer le comportement de Vim d'une manière ou d'une autre . Beaucoup d'entre eux doivent être utilisés pour personnaliser votre Vim: vous pouvez définir comment gérer les fichiers de sauvegarde, comment gérer le texte, si afficher le menu et la barre d'outils, et un tas d'autres choses. Plusieurs options sont locales au tampon ou à la fenêtre; ils spécifient par exemple quelle syntaxe en surbrillance et indentation doit être utilisée sur un tampon. La commande :set peut être utilisée pour définir et imprimer la valeur d'une option, voir :help :set. Vous obtenez la liste de toutes les options avec une description d'une ligne si vous tapez :h option-list. Vous obtenez la liste de toutes les options avec leur description longue si vous tapez :h option-summary.

Les variables internes

Les variables internes sont différentes choses: ils sont comme des variables dans un programme. Vous pouvez créer ou détruire une variable à tout moment. Ils n'affectent pas le comportement de Vim par eux-mêmes, uniquement via les scripts Vim (par exemple, les plugins Vim et votre fichier .vimrc) qui peuvent lire (et modifier) ​​leur valeur et faire des choses différentes en fonction de celui-ci. Il existe plusieurs types de variables internes: les variables globales, les variables locales et quelques autres. Ils sont décrits dans :h internal-variables. Ils sont évalués dans les expressions (:h expression) et ils peuvent être définis et supprimés à l'aide des commandes let (:h :let) et unlet (:h :unlet).

variables dans un sens étendu

Il y a d'autres objets qui se comportent comme des variables, mais ne sont pas des variables internes. Ils sont également évalués dans des expressions et leur valeur peut être définie à l'aide de la commande let; mais ils ne peuvent pas être enlevés. Il existe trois types de variables à côté de internal: variables d'environnement (:h :let-environment), variables de registre (:h let-register) et variables d'option (:h let-option). Tous ont un préfixe qui permet de les distinguer des variables internes et les unes des autres. Les variables d'environnement sont préfixées avec $, les variables de registre avec @ et les variables d'option avec &. Ces variables pointent quelque part (vers une variable d'environnement réel, un registre ou une option), et quand leur valeur est lue ou définie dans un script ou par l'utilisateur, la valeur de la "vraie chose" est en fait lue ou définie.

+0

Est-ce que 'options' est juste * prédéfini *' variables'? – nn0p

+0

Le mot "variable" est vague. Les options et les * variables internes * sont différentes à bien des égards (voir le post). Quand Vim docs utilise un terme * variable * (: h variables), cela signifie en fait des "valeurs" auxquelles peuvent se référer les variables internes, options et autres choses similaires (nombres, listes, etc.) – hcs42

Questions connexes