Skip to main content

Questions tagged [variables]

For questions about vimscript variables, their scopes, and usages.

Filter by
Sorted by
Tagged with
2 votes
3 answers
40 views

Setting variables in file in ftplugin directory

I am currently cleaning up my .vimrc. I learned that I can spread out filetype specific commands into separate files in the .vim/vimfiles directory by putting them into ftplugin and after/ftplugin ...
Matthias's user avatar
0 votes
2 answers
41 views

Trying to display current mode leads to vimscript where variable is undefined inside function

I have following in my .vimrc set laststatus=2 set showcmd set wildmenu function! UpdateStatusline() let currentMode = mode() if currentMode ==# 'n' let currentMode = "Normal&...
Wakan Tanka's user avatar
1 vote
1 answer
109 views

How can I echo a variable and redirect it to a file, register or the clipboard?

I'm using a colour scheme which makes some text unreadable in the vim terminal. Therefore I want to alter g:terminal_ansi_colors. :echo g:terminal_ansi_colors This shows me the value of the variable, ...
paradroid's user avatar
  • 377
0 votes
1 answer
70 views

Calling variables from SHELL and using them in Vim config (vimrc) [closed]

Question I am trying to use variables from SHELL inside my Vim configuration file, now, I have researched how to do this and asked ChatGPT about how as well. It is possibly due to the specific ...
Ella H's user avatar
  • 13
1 vote
1 answer
82 views

How can I match a regexp containing newlines?

When developing a vim plugin I'll publish soon, I want to highlight a text contained in a variable g:last_completion_text. Here below the code to define an highlight group named PrompterCompletion ...
Giorgio Robino's user avatar
0 votes
0 answers
25 views

how to reference variables in config [duplicate]

Let's take undodir as an example; we might have something like this in our vimrc: set undodir=$HOME/.config/nvim/undo/ In order to make config platform-agnostic one might want to use variables ...
laur's user avatar
  • 159
0 votes
2 answers
102 views

Set command-line local variable

How can I set a variable that only the current command line sees? So that :let s:one = 1 | echo s:one prints 1 but running two commands :let s:one = 1 :echo s:one errors E121: Undefined variable: s:...
minseong's user avatar
  • 2,363
1 vote
1 answer
696 views

Setting custom global variables from command-line with `nvim` command

Occasionally I would like to override my standard nvim configuration, for example, to tell it not to load vimtex's folding configuration for a very large or complicated tex file for which I don't need ...
Alex Roberts's user avatar
0 votes
1 answer
146 views

How to use variable in syntax match

I have made (better said got) a syntax file for CSV files. This works fine so far. But there is the semicolon used as seperator. I want to be able to change the seperator e.g. by a function / mapping /...
Andy A.'s user avatar
  • 233
0 votes
2 answers
229 views

VimScript: Substitute string variable content for string variable name

I would like to the present working directory (:pwd) be changed across all tabs and subwindows at the same time. I tried: let PreferredPWD=expand('%:p:h') " The desired working directory " ...
user2153235's user avatar
0 votes
1 answer
90 views

Can a popup_menu's callback access its popup_menu's first argument?

For now I have the feeling the answer is no, but I'm asking to make sure that's the case, and to know if people has found workarounds or can suggest good approaches. From :help popup_menu I've found ...
Enlico's user avatar
  • 2,224
0 votes
1 answer
65 views

How do I use variables with the delete command? (i.e., how to expand/reference variables for command arguments?)

I'm using variables for line numbers, and I want to delete a range of lines using these variables. How do I do that? let x = 5 let y = 20 " I want to delete the range of lines from x ...
Rob Bednark's user avatar
2 votes
0 answers
67 views

How do I concatenate these strings? [closed]

I have two string variables: let url = "https://URL/path/to/repo" let branch = "GIT-HASH" I want to concatentate them and echo it on the shell: let result = url . branch exec '!...
Jin's user avatar
  • 185
0 votes
1 answer
37 views

How to define default values for variables defined in ftplugin?

Say that I have defined two files python.vim let b:foo="py" let b:bar="thon" cobol.vim let b:foo="co" let b:bar="bol" and that I placed both of them in ~/.vim/...
Barzi2001's user avatar
  • 640
0 votes
1 answer
46 views

How to prevent an extra newline from being appended to macros ending with a newline? [duplicate]

If I save a macro by typing: :let @s='/{<C-v><C-m>'<Enter> which looks like: :let @s='/{^M' the macro that is actually saved is /{^M^M, with an extra linebreak (that I did not type)...
ban_javascript's user avatar
0 votes
1 answer
109 views

Put word count of lines into variable

I can get a word count of a range of lines, by doing something like this: :1,20w !wc -w (where that gets lines 1 to 20, writes (w) them to the external shell command (!) wc -w, and outputs the result ...
markling's user avatar
  • 389
3 votes
1 answer
198 views

How to set g:python_indent.disable_parentheses_indenting?

:help ft-python-indent lists the following command: let g:python_indent.disable_parentheses_indenting = 1 but when I try to use that in my config I am getting the error message E121: Undefined ...
jakun's user avatar
  • 155
0 votes
1 answer
85 views

What asterisk means before variable name in exists() function?

"filetype.vim" has line: if exists("*fnameescape") What '*' means here? Is it suppose to dereference any value?
l00p's user avatar
  • 263
2 votes
1 answer
171 views

How can I store the number of regex matches in a variable?

In Vim Script, I want to check for the amount of matches from a regular expression (/\%^\n*) and store the amount of matches in a variable. I this possible?
Amarakon's user avatar
  • 261
0 votes
1 answer
95 views

Vimscript: how to overwrite a variable that is inside an if block?

I have some code in a function like so: let branch = substitute(system('git rev-list -1 HEAD'), '\n', '', 'g') let num_branches = system('echo `git branch --contains '.branch.'` | wc -l') if ...
Jin's user avatar
  • 185
1 vote
1 answer
569 views

How to unlet a variable in Vim 9 script?

In Vim9 script :let cannot be used. An existing variable is assigned to without any command. The same for global, window, tab, buffer and Vim variables, because they are not really declared. Those ...
user90726's user avatar
  • 123
3 votes
1 answer
325 views

What's g:statusline_winid?

When I do :h 'statusline' I can see The g:statusline_winid variable will be set to the window-ID of the window that the status line belongs to. But :set statusline=[window_id\:%{g:statusline_winid}] ...
Dugesia7's user avatar
3 votes
2 answers
697 views

How to use value under cursor in the shell command?

Is it possible to use word under cursor in shell command? Say: Elvis ^ cursor here then :r! echo <word_under_cursor> and get "Elvis" read in.
l00p's user avatar
  • 263
0 votes
0 answers
13 views

autocommand variable is not substituded [duplicate]

let Dropbox = "/usr/Dropbox" ... autocmd BufNewFile *.php 0r Dropbox/vim/templates/php_start.txt The variable 'Dropbox' is not substituded by its value
lima2018's user avatar
3 votes
2 answers
3k views

Listing global variable [duplicate]

Is there any way to list all global variable? I'm guessing i could maintain a list where multiple value represent a global variable but that feel a bit weird. is there an official way to do that? (...
Nordine Lotfi's user avatar
1 vote
1 answer
413 views

How can I use a variable line number with a command?

I want to move a line to another specified in a variable. So where I might do this to move the current line up seven lines: :m-7 I want to do it with a variable line destination. Something like this: ...
markling's user avatar
  • 389
2 votes
2 answers
778 views

How to `source` a path stored in a variable in Vimscript

tldr: The title pretty much summarizes the entirety of the question I am trying to make my configuration more adaptable to different machines so that I can use git to keep them in sync between my ...
Riley Hughes's user avatar
0 votes
1 answer
524 views

Global variable not setting correctly when starting neovim

I'm trying to setup separate configs for my WSL, Windows, and MSYS2 environments in the same init.vim with simple if-else statements. So, I'll need to know what environment I'm in. To know that I ...
3N4N's user avatar
  • 5,774
7 votes
2 answers
7k views

Get value of $MYVIMRC from Lua

I am trying to retrieve the value of $MYVIMRC in my init.lua but I am coming up short because I don't understand what $MYVIMRC actually is. It is not a global variable, is it? None of these work: vim....
severin's user avatar
  • 173
7 votes
2 answers
1k views

Why is `let foo = $HOME/bar` invalid?

Why is let foo = $HOME valid and let foo = $HOME/bar invalid in vimscript? I have tried let foo = "$HOME/bar" but it is the equivalent of foo = '$HOME/bar' in shell script, $HOME is not ...
Damien L's user avatar
  • 173
0 votes
0 answers
132 views

Save and restore a variable across launches

I wanna save the state of a variable (say, background) such that the state is restored next time I start vim. More in detail, it should work like this: I set background to either dark or light. I ...
srs's user avatar
  • 101
3 votes
2 answers
2k views

How can I get the list of variables I defined?

For convenience, I'd like to define some variables. But I worry that I may forget their names. How can I get a list of them?
Tokubara's user avatar
  • 177
0 votes
1 answer
44 views

How to assign fileencoding's value to a variable?

In ex mode,i get the value for set fileencoding. set fileencoding? fileencoding=utf-8 How can assign str with the value utf-8 and print it? let str=`set fileencoding?` #it is a wrong statement,i ...
showkey's user avatar
  • 1,150
0 votes
2 answers
1k views

Can I use a variable in autocmd pat?

I have 3 languages and any can be a source or target so I need some flexibility. I am successfully loading a language translation specific setup with this: let g:tr_source = 'dyu' let g:tr_target =...
Boyd's user avatar
  • 209
2 votes
2 answers
853 views

Insert output of function with variable into buffer

I'm trying to make a vim function that takes a variable and uses that as part of a shell command and buts it into the current buffer. I tried using read but that just interprets the var as a string. ...
hemlock's user avatar
  • 23
2 votes
1 answer
3k views

Inside a mapping check if a variable is empty in vim

So i'm new to vim, and specially new to vimscript, and messing around i made the following code to get the name for a file and then create said file in a new buffer. I want a way to check if FileName_ ...
Akuseru's user avatar
  • 41
2 votes
1 answer
311 views

What is {what} supposed to mean in the official documentation?

I keep seeing mention of {what} here and there, mainly in eval.txt, popup.txt, terminal.txt, syntax.txt, and channel.txt. From :h popup_create() popup_create({what}, {options}) Open a popup window ...
Nordine Lotfi's user avatar
1 vote
2 answers
823 views

Global options as function local variables

I'm asking about this code snippet: :function TextwidthIsTooWide() : if &l:textwidth ># 80 : return 1 : endif :endfunction This is what vim-help says on the l (local) prefix: Inside ...
Attilio's user avatar
  • 369
1 vote
1 answer
114 views

Use variable in vim mapping async task [duplicate]

I am trying to use a variable in this mapping: let board_ip = "192.168.100.18" │ nnoremap <F6> :AsyncRun echo . ...
Chris's user avatar
  • 141
0 votes
1 answer
43 views

add python option in vimrc

For my fortran ft I use au BufWritePre <buffer> :silent %!fprettify --silent in my ftplugin. The fprettify is a python script with many command line options, using argparse. Now, my question is,...
BaRud's user avatar
  • 491
0 votes
2 answers
192 views

How to store state (e.g. variables) between user actions?

The main question is in the title, that is, I have a function, which is invoked by the user and it should 'remember' necessary stuff between invocations, so the next time the user calls it (like, ...
d.k's user avatar
  • 696
2 votes
2 answers
715 views

How to provide shared variables for plugins?

I've written some Vimscript code* in which it's convenient to have a set of shared color names. To use the names, so far I've had to rely on code like this: execute 'source ' . expand('<sfile>:...
Tony's user avatar
  • 123
2 votes
1 answer
334 views

How to store a region of text into a variable?

Suppose I have \label{some text} somewhere in my file and I want to store some text into a variable. Right now what I am doing to achieve this is to first visually select some text and then store it ...
caffeinemachine's user avatar
1 vote
2 answers
133 views

Is there a 'let' equivalent for setting an option only local to a buffer/window?

When working with options that often have complex or calculated string values (e.g. formatprg, which might have additional parameters, separated by whitespace), it's often easier to use let to set ...
Andrew Ferrier's user avatar
1 vote
1 answer
152 views

Possible to set vimrc variables based on the current vim 'incantation'?

I wasn't sure how to word this properly in the title.. what I'm looking to do is set variables one way or another depending on how vim is invoked. Specifically I have just discovered the Man plugin, ...
Harv's user avatar
  • 219
2 votes
1 answer
371 views

How do I put the List returned from a 'heredoc' (:h Let-HereDocs) into a Dictionary in Vim? How do I also make this work in Neovim?

In :help let-heredoc it explains that one can set a variable to a 'heredoc' where each line of the heredoc becomes an entry in a list as follows: let text =<< trim END if ok echo 'done' ...
Incalculon's user avatar
3 votes
1 answer
71 views

Customizing Latex-Suite star environments

The documentation of Latex-Suite says I can customize the generated environment boilerplates by defining g:Tex_Env_... variables. This works for me. Nevertheless, it goes on to say that for ...
The Vee's user avatar
  • 133
1 vote
2 answers
293 views

switch current directory between a base directory and current file directory

Goal: To achieve filename/path completion relative to current file directory using file name completion CTRL-X CTRL-F. I open all my files contained in a base directory such that :pwd in some_file ...
Haslo Vardos's user avatar
4 votes
1 answer
298 views

How can I access buffer variables from BufUnload/BufDelete?

vimdoc says: BufUnload Before unloading a buffer. ... NOTE: When this autocommand is executed, the current buffer "%" may be different from the buffer being unloaded "<afile>". Don't change ...
idbrii's user avatar
  • 661
3 votes
2 answers
385 views

Sort output of let or set

How to sort the output of let or get? E.g., I want to sort all global variables containing "python": :filter python let g:
Konstantin Glukhov's user avatar