| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- *mru.txt* Plugin for accessing most recently used files
- Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
- For Vim version 7.0 and above
- Last change: Feb 1, 2021
- ==============================================================================
- *mru-license*
- License: MIT License
- Copyright (c) 2003-2021 Yegappan Lakshmanan
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to
- deal in the Software without restriction, including without limitation the
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- IN THE SOFTWARE.
- ==============================================================================
- CONTENTS~
- 1. Overview |mru-overview|
- 2. Installation |mru-installation|
- 3. Usage |mru-usage|
- 4. Configuration |mru-configuration|
- 5. FZF Integration |mru-fzf|
- ==============================================================================
- 1. Overview *mru-overview*
- The Most Recently Used (MRU) plugin provides an easy access to a list of
- recently opened/edited files in Vim. This plugin automatically stores the
- file names as you open/edit them in Vim.
- This plugin will work on all the platforms where Vim is supported. This
- plugin will work in both console and GUI Vim. This version of the MRU
- plugin needs Vim 7.0 and above. If you are using an earlier version of
- Vim, then you should use an older version of the MRU plugin.
- The recently used filenames are stored in a file specified by the Vim
- MRU_File variable.
- The Github repository for the MRU plugin is available at:
- http://github.com/yegappan/mru
- ==============================================================================
- 2. Installation *mru-installation*
- You can use any one of the Vim plugin managers (dein.vim, pathogen, vam,
- vim-plug, volt, Vundle, etc.) to install and manage this plugin.
- Alternatively, you can also manually download and install the plugin
- using the following steps.
- 1. Download the mru.zip file from https://github.com/yegappan/mru/releases
- 2. Unzip the mru.zip file into the $HOME/.vim directory for Linux/MacOS/Unix
- systems or the $HOMEPATH/vimfiles directory for MS-Windows. After this
- step, you should have the following files (the directory structure should
- be preserved):
- plugin/mru.vim - MRU plugin
- doc/mru.txt - documentation (help) file
- 3. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc directory, start Vim and
- run the ":helptags ." command to process the help file. Without this step,
- you cannot jump to the MRU help topics.
- 4. Restart Vim.
- 5. You can use the |:MRU| command to list and edit the recently used files.
- In GUI Vim, you can use the 'File->Recent Files' menu to access the
- recently used files.
- To uninstall the MRU plugin, either use the uninstall command provided by the
- plugin manager or manually remove the plugin/mru.vim, and doc/mru.txt
- files from either the $HOME/.vim or $HOME/vimfiles directory.
- ==============================================================================
- 3. Usage *mru-usage* *:MRU*
- To list and edit files from the Most Recently Used (MRU) list, you can use the
- ":MRU" command. The |:MRU| command displays the list of recently used files
- in a temporary Vim window. If the MRU window is already opened, then the MRU
- list currently displayed in the window is refreshed.
- If you are using GUI Vim, then the names of the recently edited files are
- added to the "File->Recent Files" menu. You can select the name of a file
- from this sub-menu to edit the file.
- You can use the normal Vim commands to move around in the MRU window. You
- cannot make changes in the MRU window.
- You can select a file name to edit by pressing the <Enter> key or by double
- clicking the left mouse button on a file name. The selected file will be
- opened. If the file is already opened in a window, the cursor will be moved
- to that window. Otherwise, the file is opened in the previous window. If the
- previous window has a modified buffer or is the preview window or is used by
- some other plugin, then the file is opened in a new window.
- You can press the 'o' key to open the file name under the cursor in the
- MRU window in a new window. You can also press <Shift-Enter> instead of 'o'
- to open the file in a new window.
- To open a file from the MRU window in read-only mode (view), press the 'v'
- key.
- To open a file from the MRU window in a new tab, press the 't' key. If the
- file is already opened in a window in the current or in another tab, then
- the cursor is moved to that tab. Otherwise, a new tab is opened.
- You can open multiple files from the MRU window by specifying a count before
- pressing '<Enter>' or 'v' or 'o' or 't'. You can also visually (using
- linewise visual mode) select multiple filenames and invoke the commands to
- open the files. Each selected file will be opened in a separate window or
- tab.
- You can press the 'u' key in the MRU window to update the file list. This is
- useful if you keep the MRU window open always.
- You can press the 'd' key to remove the entry under the cursor in the MRU
- window from the MRU list.
- You can close the MRU window by pressing the 'q' key or the <Esc> key or
- using one of the Vim window commands.
- By default, the MRU window is opened as the bottom-most window. If you are
- using Vim version 8.0 and above, then you can use command modifiers like
- |:topleft| or |:botright| or |:vertical| with the :MRU command to control
- where the window is opened. Example: >
- :topleft MRU " horizontally split topmost window
- :botright MRU " horizontally split bottommost window
- :vertical topleft MRU " vertically split far-left window
- :vertical botright MRU " vertically split far-right window
- <
- By default, the height of the MRU window is 8 or the value specified by the
- g:MRU_Window_Height variable. You can pass a count to the :MRU command to use
- a different height. Example: >
- :15MRU
- :vertical topleft 20MRU
- <
- To display only files matching a pattern from the MRU list in the MRU window,
- you can specify a pattern to the |:MRU| command. Example: >
- :MRU mystr
- <
- The above command displays only the file names containing the string "mystr"
- in them. When you specify a partial file name and only one matching filename
- is found, then the |:MRU| command will edit that file.
- The |:MRU| command supports command-line completion of file names from
- the MRU list. You can enter a partial file name and then press <Tab>
- or <Ctrl-D> to complete or list all the matching file names. Note that
- after typing the |:MRU| command, you have to enter a space before completing
- the file names with <Tab>.
- When a file supplied to the |:MRU| command is not present in the MRU list,
- but it is a readable file, then the file will be opened (even though it is
- not present in the MRU list). This is useful if you want to open a file
- present in the same directory as a file in the MRU list. You can use the
- command-line completion of the |:MRU| command to complete the full path of a
- file and then modify the path to open another file present in the same path.
- Whenever the MRU list changes, the MRU file is updated with the latest MRU
- list. When you have multiple instances of Vim running at the same time, the
- latest MRU list will show up in all the instances of Vim.
- The MRUFilename syntax group is used to highlight the file names in the MRU
- window. By default, this syntax group is linked to the Identifier highlight
- group. You can change the highlight group by adding the following line in
- your .vimrc:
- >
- highlight link MRUFileName LineNr
- <
- The MRU buffer uses the 'mru file type. You can use this file type to add
- custom auto commands, syntax highlighting, etc.
- ==============================================================================
- 4. Configuration *mru-configuration*
- By changing the following variables you can configure the behavior of this
- plugin. Set the following variables in your .vimrc file using the 'let'
- command.
- The list of recently edited file names is stored in the file specified by the
- MRU_File variable. The default setting for this variable is
- $HOME/.vim_mru_files for Unix-like systems and $USERPROFILE/_vim_mru_files
- for MS-Windows systems. You can change this variable to point to a file by
- adding the following line to the .vimrc file:
- >
- let MRU_File = 'd:\myhome\_vim_mru_files'
- <
- By default, the plugin will remember the names of the last 100 used files.
- As you edit more files, old file names will be removed from the MRU list.
- You can set the 'MRU_Max_Entries' variable to remember more file names. For
- example, to remember 1000 most recently used file names, you can use
- >
- let MRU_Max_Entries = 1000
- <
- By default, all the edited file names are added to the MRU list. If you want
- to exclude file names matching a pattern, then you can set the
- MRU_Exclude_Files variable to a Vim regular expression. If any part of a
- file name matches the regular expression, then it is not added to the MRU
- list. By default, this variable is set to an empty string. For example, to
- not include files in the temporary (/tmp, /var/tmp and d:\temp) directories,
- you can set the MRU_Exclude_Files variable to
- >
- let MRU_Exclude_Files = '^/tmp/.*\|^/var/tmp/.*' " For Unix
- let MRU_Exclude_Files = '^c:\\temp\\.*' " For MS-Windows
- <
- The specified pattern should be a Vim regular expression pattern. Note that
- you can specify multiple patterns using '\|'.
- If you want to add only file names matching a pattern to the MRU list, then
- you can set the MRU_Include_Files variable. This variable should be set to a
- Vim regular expression pattern. If the regular expression matches any part
- of a file name, then it is added to the MRU list. For example, to add only
- .c and .h files to the MRU list, you can set this variable as below:
- >
- let MRU_Include_Files = '\.c$\|\.h$'
- <
- By default, MRU_Include_Files is set to an empty string and all the edited
- filenames are added to the MRU list. Note that you can specify multiple
- patterns using '\|'.
- The default height of the MRU window is 8. You can set the MRU_Window_Height
- variable to change the window height. You can also set the height of the MRU
- window by passing a count to the :MRU command.
- >
- let MRU_Window_Height = 15
- <
- By default, when the |:MRU| command is invoked, the MRU list will be displayed
- in a new window. Instead, if you want the MRU plugin to reuse the current
- window, then you can set the 'MRU_Use_Current_Window' variable to one.
- >
- let MRU_Use_Current_Window = 1
- <
- The MRU plugin will reuse the current window. When a file name is selected,
- the file is also opened in the current window.
- When you select a file from the MRU window, the MRU window will be
- automatically closed and the selected file will be opened in the previous
- window. You can set the 'MRU_Auto_Close' variable to zero to keep the MRU
- window open.
- >
- let MRU_Auto_Close = 0
- <
- If you don't use the "File->Recent Files" menu and want to disable it,
- then you can set the 'MRU_Add_Menu' variable to zero. By default, the
- menu is enabled.
- >
- let MRU_Add_Menu = 0
- <
- If too many file names are present in the MRU list, then updating the MRU
- menu to list all the file names makes Vim slow. To avoid this, the
- MRU_Max_Menu_Entries variable controls the number of file names to show in
- the MRU menu. By default, this is set to 10. You can change this to show
- more entries in the menu.
- >
- let MRU_Max_Menu_Entries = 20
- <
- If many file names are present in the MRU list, then the MRU menu is split
- into sub-menus. Each sub-menu contains MRU_Max_Submenu_Entries file names.
- The default setting for this is 10. You can change this to increase the
- number of file names displayed in a single sub-menu:
- >
- let MRU_Max_Submenu_Entries = 15
- <
- In the MRU window, the filenames are displayed in two parts. The first part
- contains the file name without the path and the second part contains the
- full path to the file in parenthesis. This format is controlled by the
- MRU_Filename_Format variable. If you prefer to change this to some other
- format, then you can modify the MRU_Filename_Format variable. For example,
- to display the full path without splitting it, you can set this variable
- as shown below:
- >
- let MRU_Filename_Format =
- \ {'formatter':'v:val', 'parser':'.*', 'syntax': '[^/\\]\+$'}
- <
- ==============================================================================
- 5. FZF Integration *mru-fzf*
- You can use the MRU plugin with FZF (command-line fuzzy finder). You can
- download and install FZF from https://github.com/junegunn/fzf.
- To select a file from the MRU file list using FZF, run the following command:
- >
- :FZFMru
- <
- This will invoke FZF to select a file from the MRU list.
- ==============================================================================
- vim:tw=78:ts=8:noet:ft=help:
|