You can use :verbose set modifiable?
to find out if a plugin is setting the option. If the option has been modified by a plugin, it will show Last set from /path/to/plugin/file
(in addition to showing the value).
Maybe you are using the Netrw plugin. It comes bundled with Vim and handles “editing” local directories (listing the contents, picking files to view/edit) and remote file/directory access. I know it twiddles modifiable
(and some other options). There may be a bug in the version bundled with your updated Vim. You can check the version number of the active installation of Netrw with :echo g:loaded_netrwPlugin
.
If the problem seems to be related to Netrw, you might try installing another released version, or maybe a development version.
Yes, it is possible. You can load menu.vim
(the default gvim menu definitions), or you can just start from scratch and create your own, then access them through :emenu
. This doesn't give you nano-like always-visible menus, though; it gives you the ability to navigate menus using command-line tab completion.
If the user doesn't have a vimrc, you'll want to start by disabling vi compatibility:
:set nocompatible
Enable smart command line completion on <Tab>
(enable listing all possible choices, and navigating the results with <Up>
, <Down>
, <Left>
, <Right>
, and <Enter>
):
:set wildmenu
Make repeated presses cycle between all matching choices:
:set wildmode=full
Load the default menus (this would happen automatically in gvim, but not in terminal vim):
:source $VIMRUNTIME/menu.vim
After those four commands, you can manually trigger menu completion by invoking tab completion on the :emenu
command, by doing :emenu<space><tab>
You can navigate the results using the tab key and the arrow keys, and the enter key (it both expands submenus and selects items). You can then make that more convenient by going a step further, and binding a mapping to pop up the menu without having to type :emenu
every time:
Make Ctrl-Z in a mapping act like pressing <Tab>
interactively on the command line:
:set wildcharm=<C-Z>
And make a binding that automatically invokes :emenu
completion for you:
:map <F4> :emenu <C-Z>
Best Answer
There are several options to do so:
You can use a terminal multiplexer like screen or tmux.
In screen, for example, the shortcut Ctrl+a - a, has the same functiononality as Alt+Tab in graphical environments: switch to the last screen.
Or you use
vim
's internal function.Type
:!command
invim
's command mode. For example::!ls -l
. After the command finishes press Enter to switch back tovim
.There is one more option: Job conrol.
Press Ctrl+z to stop the current process (
vim
). You will find yourself in a terminal. To bring the stopped process back to the foreground typefg
.For me, I prefer screen. I have an unwritten rule for myself: "Always open a screen."