How could I enable cursor line only for gvim? - vim

I want to enable cursorline only for gvim but disable it for vim in TUI, I tried this in .vimrc
if has("gui_running")
set cul
else
set nocul
endif
but it doesn't seem to work.

The .vimrc gets read by gvim and vim while the .gvimrc gets only read by gvim. As the docs say:
The gvimrc file is where GUI-specific startup commands should be placed. It
is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC
environment variable has its name.
While your command should do the trick, I'd place the set cul command in my .gvimrc.
This will also help your .vimrc being cleaner and you don't need gui_running checks anymore.

Related

How do you get Separate Color-schemes for Gvim and Vim?

I have used vim for a while now, but after my friend introduced me to gvim, I'm trying to use it now. I have basic vimrc settings of :
set guifont=Monaco:h17
colorscheme zellner
set number
syntax on
I noticed that the settings were applied to my gvim. I want a different colorscheme for gvim and vim as I usually open the files I'll read quickly with vim or vi, and use gvim as my main code editor.
I heard people talk about the .gvimrc file, but I don't have it where my .bashrc, .zshrc, and .vimrc are.
How do I have separate colorschemes for gvim and vim?
Vim doesn't create either ~/.vimrc or ~/.gvimrc for you so you have to create them on your own.
You can either create the missing file in your shell, then edit in Vim:
$ touch ~/.gvimrc
$ vim ~/.gvimrc
<some editing>
:wq
or do everything from Vim:
:e ~/.gvimrc
<some editing>
:wq
Note: ~/.vimrc is still sourced whether you have a ~/.gvimrc or not so your gvimrc can be kept lightweight by only having GUI-specific options and overrides. In your case:
" ~/.vimrc
colorscheme zellner
set number
syntax on
" ~/.gvimrc
set guifont=Monaco:h17
colorscheme slate
You can do it in a single ~/.vimrc:
if has("gui_running")
colorscheme zellner
else
colorscheme blue
endif
See http://vimdoc.sourceforge.net/htmldoc/eval.html#has() and http://vimdoc.sourceforge.net/htmldoc/eval.html#feature-list

How can I apply vimrc conf file in .py

when I run
vim good.html
and
:verbose set et?
expandtab
Last set from ~/.vimrc
but when I run
vim good.py
and
:verbose set et?
expandtab
Last set from /usr/share/vim/vim74/ftplugin/python.vim
I want apply ~/.vimrc file in .py, not python.vim
Yesterday I all is fine but today suddenly path was changed
please someone teach me how can I change the path
Put this into your .vimrc:
autocmd VimEnter *.py set expandtab
or if you want to have the configuration of .vimrc to be executed after all plugins being loaded - in case they have changed some settings -, you can add this line:
autocmd VimEnter * source ~/.vimrc
Note: It could have a side-effect depending on the content of your .vimrc because the latter actually will be executed twice (at the begining and at the end of vim startup) so you need to consider that.
Concerning Plugins now, if they are logged in some specific folders like .vim or vim installation path they will be loaded automatically unless you removed them or run some specific commands to be ignored.
Vim has also the ability to detect the type of file which is being edited, and this occurs when the option filetype is activated and probably this is what happened to you.
So typing :filetype will confirm that. Maybe you can desactivate it for some specific files if you wish. It is up to you !
:help VimEnter
VimEnter
VimEnter After doing all the startup stuff, including
loading .vimrc files, executing the "-c cmd"
arguments, creating all windows and loading
the buffers in them.

.vimrc file does not apply after restarting

I am new to vim, and I want to set the default color theme to obsidian2 (I have already put it into /colors).
In the normal mode, I enter :e $MYVIMRC to open the .vimrc file.
Then I add :colorscheme obsidian2 into the .vimrc file.
After restarting vim, the default color theme does not change.
Any suggestions please?
Edit: I am using MacVim. I also tried setting the $MYGVIMRC, but it doesn't help.
If you add :colorscheme obsidian2, you just change the scheme temporarily.
If you want to change scheme permanently, add config like this in your vimrc file:
set background=dark
colorscheme obsidian2
then reload vimrc.
If you instert :colorscheme obsidian2 to .vimrc file, it's wrong.
You should remove : character like:
colorscheme obsidian2
and restart vim or run :source %

VIM for windows doesn't load vimrc file from current directory

i starting to use VIM for windows, i download the minimal windows vim exe from here:
http://www.vim.org/download.php#pc
i created simple vimrc file that is located in the gvim.exe directory that looks like this :
vimrc:
set secure exrc
"disable beep
set noeb vb t_vb=
"color scheme
set background=dark
highlight Normal guibg=Black guifg=White
"remove topbar
set guioptions-=T
the thing is that when i execute the gvim.exe , it doesn't load the vimrc
it load it only when from within vim i run :
:e vimrc
:so %
what i missing here ?
Your plugins, colorschemes, etc. are supposed to be here:
%userprofile%\vimfiles
Your vimrc is supposed to be there:
%userprofile%\vimfiles\vimrc

Set working in file but not in .vimrc

When I put set scroll=10 in my .vimrc it does not work, but it does work when I enter the command in command mode.
I have many other commands in my .vimrc, what reason could there be for this set to not be getting through? It is the last line in my .vimrc.
:verbose set scroll?
should tell you which plugin script has last modified that option. If you don't find the culprit this way, you could workaround by setting it at the last possible moment by putting this in your ~/.vimrc
:autocmd VimEnter * set scroll=10

Resources