Most Recently Used (MRU) Vim Plugin
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

274 lines
12 KiB

  1. *mru.txt* Plugin for accessing most recently used files
  2. Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
  3. For Vim version 7.0 and above
  4. Last change: August 29, 2018
  5. ==============================================================================
  6. *mru-license*
  7. License: MIT License
  8. Copyright (c) 2003-2018 Yegappan Lakshmanan
  9. Permission is hereby granted, free of charge, to any person obtaining a copy
  10. of this software and associated documentation files (the "Software"), to
  11. deal in the Software without restriction, including without limitation the
  12. rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  13. sell copies of the Software, and to permit persons to whom the Software is
  14. furnished to do so, subject to the following conditions:
  15. The above copyright notice and this permission notice shall be included in
  16. all copies or substantial portions of the Software.
  17. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20. AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21. LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  22. FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  23. IN THE SOFTWARE.
  24. ==============================================================================
  25. CONTENTS~
  26. 1. Overview |mru-overview|
  27. 2. Installation |mru-installation|
  28. 3. Usage |mru-usage|
  29. 4. Configuration |mru-configuration|
  30. ==============================================================================
  31. 1. Overview *mru-overview*
  32. The Most Recently Used (MRU) plugin provides an easy access to a list of
  33. recently opened/edited files in Vim. This plugin automatically stores the
  34. file names as you open/edit them in Vim.
  35. This plugin will work on all the platforms where Vim is supported. This
  36. plugin will work in both console and GUI Vim. This version of the MRU
  37. plugin needs Vim 7.0 and above. If you are using an earlier version of
  38. Vim, then you should use an older version of the MRU plugin.
  39. The recently used filenames are stored in a file specified by the Vim
  40. MRU_File variable.
  41. The Github repository for the MRU plugin is available at:
  42. http://github.com/yegappan/mru
  43. ==============================================================================
  44. 2. Installation *mru-installation*
  45. You can use any one of the Vim plugin managers (dein.vim, pathogen, vam,
  46. vim-plug, volt, Vundle, etc.) to install and manage this plugin.
  47. Alternatively, you can also manually download and install the plugin
  48. using the following steps.
  49. 1. Download the mru.zip file from the vim.sourceforge.io site.
  50. 2. Unzip the files into the $HOME/.vim or the $HOME/vimfiles directory. After
  51. this step, you should have the following files (the directory structure
  52. should be preserved):
  53. plugin/mru.vim - MRU plugin
  54. doc/mru.txt - documentation (help) file
  55. 3. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or $VIM/vimfiles/doc
  56. directory, start Vim and run the ":helptags ." command to process the
  57. help file. Without this step, you cannot jump to the help topics.
  58. 4. Restart Vim.
  59. 5. You can use the |:MRU| command to list and edit the recently used files.
  60. In GUI Vim, you can use the 'File->Recent Files' menu to access the
  61. recently used files.
  62. To uninstall the MRU plugin, either use the uninstall command provided by the
  63. plugin manager or manually remove the plugin/mru.vim, and doc/greplace.txt
  64. files from the $HOME/.vim or $HOME/vimfiles directory.
  65. ==============================================================================
  66. 3. Usage *mru-usage* *:MRU*
  67. To list and edit files from the Most Recently Used (MRU) list, you can use the
  68. ":MRU" command. The |:MRU| command displays the list of recently used files
  69. in a temporary Vim window. If the MRU window is already opened, then the MRU
  70. list currently displayed in the window is refreshed.
  71. If you are using GUI Vim, then the names of the recently edited files are
  72. added to the "File->Recent Files" menu. You can select the name of a file
  73. from this sub-menu to edit the file.
  74. You can use the normal Vim commands to move around in the MRU window. You
  75. cannot make changes in the MRU window.
  76. You can select a file name to edit by pressing the <Enter> key or by double
  77. clicking the left mouse button on a file name. The selected file will be
  78. opened. If the file is already opened in a window, the cursor will be moved
  79. to that window. Otherwise, the file is opened in the previous window. If the
  80. previous window has a modified buffer or is the preview window or is used by
  81. some other plugin, then the file is opened in a new window.
  82. You can press the 'o' key to open the file name under the cursor in the
  83. MRU window in a new window. You can also press <Shift-Enter> instead of 'o'
  84. to open the file in a new window.
  85. To open a file from the MRU window in read-only mode (view), press the 'v'
  86. key.
  87. To open a file from the MRU window in a new tab, press the 't' key. If the
  88. file is already opened in a window in the current or in another tab, then
  89. the cursor is moved to that tab. Otherwise, a new tab is opened.
  90. You can open multiple files from the MRU window by specifying a count before
  91. pressing '<Enter>' or 'v' or 'o' or 't'. You can also visually (using
  92. linewise visual mode) select multiple filenames and invoke the commands to
  93. open the files. Each selected file will be opened in a separate window or
  94. tab.
  95. You can press the 'u' key in the MRU window to update the file list. This is
  96. useful if you keep the MRU window open always.
  97. You can close the MRU window by pressing the 'q' key or the <Esc> key or
  98. using one of the Vim window commands.
  99. To display only files matching a pattern from the MRU list in the MRU
  100. window, you can specify a pattern to the |:MRU| command. For example, to
  101. display only file names matching "vim" in them, you can use the following
  102. command ":MRU vim". When you specify a partial file name and only one
  103. matching filename is found, then the |:MRU| command will edit that file.
  104. The |:MRU| command supports command-line completion of file names from
  105. the MRU list. You can enter a partial file name and then press <Tab>
  106. or <Ctrl-D> to complete or list all the matching file names. Note that
  107. after typing the |:MRU| command, you have to enter a space before completing
  108. the file names with <Tab>.
  109. When a file supplied to the |:MRU| command is not present in the MRU list,
  110. but it is a readable file, then the file will be opened (even though it is
  111. not present in the MRU list). This is useful if you want to open a file
  112. present in the same directory as a file in the MRU list. You can use the
  113. command-line completion of the |:MRU| command to complete the full path of a
  114. file and then modify the path to open another file present in the same path.
  115. Whenever the MRU list changes, the MRU file is updated with the latest MRU
  116. list. When you have multiple instances of Vim running at the same time, the
  117. latest MRU list will show up in all the instances of Vim.
  118. The MRUFilename syntax group is used to highlight the file names in the MRU
  119. window. By default, this syntax group is linked to the Identifier highlight
  120. group. You can change the highlight group by adding the following line in
  121. your .vimrc:
  122. >
  123. highlight link MRUFileName LineNr
  124. <
  125. The MRU buffer uses the 'mru file type. You can use this file type to add
  126. custom auto commands, syntax highlighting, etc.
  127. ==============================================================================
  128. 4. Configuration *mru-configuration*
  129. By changing the following variables you can configure the behavior of this
  130. plugin. Set the following variables in your .vimrc file using the 'let'
  131. command.
  132. The list of recently edited file names is stored in the file specified by the
  133. MRU_File variable. The default setting for this variable is
  134. $HOME/.vim_mru_files for Unix-like systems and $USERPROFILE/_vim_mru_files
  135. for MS-Windows systems. You can change this variable to point to a file by
  136. adding the following line to the .vimrc file:
  137. >
  138. let MRU_File = 'd:\myhome\_vim_mru_files'
  139. <
  140. By default, the plugin will remember the names of the last 100 used files.
  141. As you edit more files, old file names will be removed from the MRU list.
  142. You can set the 'MRU_Max_Entries' variable to remember more file names. For
  143. example, to remember 1000 most recently used file names, you can use
  144. >
  145. let MRU_Max_Entries = 1000
  146. <
  147. By default, all the edited file names are added to the MRU list. If you want
  148. to exclude file names matching a pattern, then you can set the
  149. MRU_Exclude_Files variable to a Vim regular expression. If any part of a
  150. file name matches the regular expression, then it is not added to the MRU
  151. list. By default, this variable is set to an empty string. For example, to
  152. not include files in the temporary (/tmp, /var/tmp and d:\temp) directories,
  153. you can set the MRU_Exclude_Files variable to
  154. >
  155. let MRU_Exclude_Files = '^/tmp/.*\|^/var/tmp/.*' " For Unix
  156. let MRU_Exclude_Files = '^c:\\temp\\.*' " For MS-Windows
  157. <
  158. The specified pattern should be a Vim regular expression pattern. Note that
  159. you can specify multiple patterns using '\|'.
  160. If you want to add only file names matching a pattern to the MRU list, then
  161. you can set the MRU_Include_Files variable. This variable should be set to a
  162. Vim regular expression pattern. If the regular expression matches any part
  163. of a file name, then it is added to the MRU list. For example, to add only
  164. .c and .h files to the MRU list, you can set this variable as below:
  165. >
  166. let MRU_Include_Files = '\.c$\|\.h$'
  167. <
  168. By default, MRU_Include_Files is set to an empty string and all the edited
  169. filenames are added to the MRU list. Note that you can specify multiple
  170. patterns using '\|'.
  171. The default height of the MRU window is 8. You can set the MRU_Window_Height
  172. variable to change the window height.
  173. >
  174. let MRU_Window_Height = 15
  175. <
  176. By default, when the |:MRU| command is invoked, the MRU list will be displayed
  177. in a new window. Instead, if you want the MRU plugin to reuse the current
  178. window, then you can set the 'MRU_Use_Current_Window' variable to one.
  179. >
  180. let MRU_Use_Current_Window = 1
  181. <
  182. The MRU plugin will reuse the current window. When a file name is selected,
  183. the file is also opened in the current window.
  184. When you select a file from the MRU window, the MRU window will be
  185. automatically closed and the selected file will be opened in the previous
  186. window. You can set the 'MRU_Auto_Close' variable to zero to keep the MRU
  187. window open.
  188. >
  189. let MRU_Auto_Close = 0
  190. <
  191. If you don't use the "File->Recent Files" menu and want to disable it,
  192. then you can set the 'MRU_Add_Menu' variable to zero. By default, the
  193. menu is enabled.
  194. >
  195. let MRU_Add_Menu = 0
  196. <
  197. If too many file names are present in the MRU list, then updating the MRU
  198. menu to list all the file names makes Vim slow. To avoid this, the
  199. MRU_Max_Menu_Entries variable controls the number of file names to show in
  200. the MRU menu. By default, this is set to 10. You can change this to show
  201. more entries in the menu.
  202. >
  203. let MRU_Max_Menu_Entries = 20
  204. <
  205. If many file names are present in the MRU list, then the MRU menu is split
  206. into sub-menus. Each sub-menu contains MRU_Max_Submenu_Entries file names.
  207. The default setting for this is 10. You can change this to increase the
  208. number of file names displayed in a single sub-menu:
  209. >
  210. let MRU_Max_Submenu_Entries = 15
  211. <
  212. In the MRU window, the filenames are displayed in two parts. The first part
  213. contains the file name without the path and the second part contains the
  214. full path to the file in parenthesis. This format is controlled by the
  215. MRU_Filename_Format variable. If you prefer to change this to some other
  216. format, then you can modify the MRU_Filename_Format variable. For example,
  217. to display the full path without splitting it, you can set this variable
  218. as shown below:
  219. >
  220. let MRU_Filename_Format =
  221. \ {'formatter':'v:val', 'parser':'.*', 'syntax': '[^/\\]\+$'}
  222. <
  223. If you want to define a custom path / name for the recent file menu, you can
  224. do something like:
  225. >
  226. let MRU_Menu_Path = '&Recent\ Files'
  227. <
  228. The default value here is '&File.&Recent Files'. See :help creating-menus
  229. for format info.
  230. ==============================================================================
  231. vim:tw=78:ts=8:noet:ft=help: