From 672977414343fdc9c3dee912b77f77120c7ab1da Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 12 Oct 2018 18:52:23 +0200 Subject: [PATCH 1/7] doc: manpage roff/mdoc reference: http://man7.org/linux/man-pages/man7/groff_mdoc.7.html --- man/nvim.1 | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/man/nvim.1 b/man/nvim.1 index cfaa3ef3aa..2621036e26 100644 --- a/man/nvim.1 +++ b/man/nvim.1 @@ -20,10 +20,21 @@ .Sh DESCRIPTION .Nm is a text editor based on Vim. -Commands in this program start with colon +Start +.Nm +followed by any number of options and/or files: +.Pp +.Dl nvim [options] [filelist] +.Pp +Commands in +.Nm +begin with colon .Pq Sq \&: . -Use the :help command to get help, for example ":help quickref" -is a condensed overview of almost all commands. +Type ":help subject" to get help on a specific subject. +Use and CTRL-D to complete subjects (":help cmdline\-completion"). +.Pp +The "quickref" help section is a condensed reference of editor features: +.Dl :help quickref .Pp If you are new to Vim/Nvim, start with the 30-minute tutorial: .Dl :Tutor @@ -34,28 +45,25 @@ After installing/updating Nvim, it's a good idea to run the self-check: .Bl -tag -width Fl .It Ar file ... File(s) to edit. -If none are specified, open an empty buffer. -If multiple files are specified, open one buffer for each file. +Opens one buffer per file. To switch between buffers, use the .Ic :next and .Ic :previous commands. .It Fl -Read text from standard input until +Reads text from standard input until .Dv EOF , -then open a buffer with that text. +then opens a buffer with that text. User input is read from standard error, which should be a terminal. +.Sh OPTIONS +.Bl -tag -width Fl .It Fl t Ar tag -The file to edit and the initial cursor position depends on a -tag, a sort of goto label. +Finds .Ar tag -is looked up in the tags file, the associated file becomes the current +in the tags file, the associated file becomes the current file and the associated command is executed. -If -.Ar tag -is a function name, the file containing that function is opened -with the cursor positioned at the start of the function. +Cursor is positioned at the tag location in the file. .Ic ":help tag-commands" .It Fl q Op Ar errorfile QuickFix mode. @@ -69,7 +77,6 @@ Further errors can be jumped to with the .Ic :cnext command. .Ic ":help quickfix" -.It There are a number of other options: .It Fl - End of options. Remaining arguments are treated as literal file names, including filenames starting with hyphen From 4de70f5b9581bd0e35e7af3b6fb1eb835d538555 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 1 Nov 2018 05:24:44 +0100 Subject: [PATCH 2/7] doc - update standard-plugin-list. closes #8388 --- runtime/doc/deprecated.txt | 5 +++-- runtime/doc/help.txt | 3 +++ runtime/doc/pi_msgpack.txt | 2 +- src/nvim/api/vim.c | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt index 7c98b81867..92a6bd6b4f 100644 --- a/runtime/doc/deprecated.txt +++ b/runtime/doc/deprecated.txt @@ -42,10 +42,11 @@ Functions ~ *last_buffer_nr()* Obsolete name for bufnr("$"). Modifiers ~ +*cpo-<* *:menu-* -*:menu-special* <> notation is always enabled. |cpo-<| +*:menu-special* <> notation is always enabled. *:map-* -*:map-special* <> notation is always enabled. |cpo-<| +*:map-special* <> notation is always enabled. Normal commands ~ *]f* diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt index 976402c915..c2ad25aeda 100644 --- a/runtime/doc/help.txt +++ b/runtime/doc/help.txt @@ -160,6 +160,9 @@ Versions ~ *standard-plugin-list* Standard plugins ~ |pi_gzip.txt| Reading and writing compressed files +|pi_health.txt| Healthcheck framework +|pi_matchit.txt| Extended "%" matching +|pi_msgpack.txt| msgpack utilities |pi_netrw.txt| Reading and writing files over a network |pi_paren.txt| Highlight matching parens |pi_spec.txt| Filetype plugin to work with rpm spec files diff --git a/runtime/doc/pi_msgpack.txt b/runtime/doc/pi_msgpack.txt index 2484a13878..951b897f55 100644 --- a/runtime/doc/pi_msgpack.txt +++ b/runtime/doc/pi_msgpack.txt @@ -1,4 +1,4 @@ -*pi_msgpack.txt* Nvim +*pi_msgpack.txt* msgpack utilities Author: Nikolay Pavlov Copyright: (c) 2015 by Nikolay Pavlov diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index fed20a272a..7fcccfd988 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -1028,7 +1028,7 @@ Array nvim_get_api_info(uint64_t channel_id) /// @param attributes Informal attributes describing the client. Clients might /// define their own keys, but the following are suggested: /// - "website" Website of client (for instance github repository) -/// - "license" Informal descripton of the license, such as "Apache 2", +/// - "license" Informal description of the license, such as "Apache 2", /// "GPLv3" or "MIT" /// - "logo" URI or path to image, preferably small logo or icon. /// .png or .svg format is preferred. From f679abef3e518864b262f9e916c14ca6ff6ef4e4 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 4 Nov 2018 13:43:12 +0100 Subject: [PATCH 3/7] runtime: delete rrhelper.vim --- runtime/plugin/README.txt | 19 --------------- runtime/plugin/rrhelper.vim | 48 ------------------------------------- 2 files changed, 67 deletions(-) delete mode 100644 runtime/plugin/README.txt delete mode 100644 runtime/plugin/rrhelper.vim diff --git a/runtime/plugin/README.txt b/runtime/plugin/README.txt deleted file mode 100644 index 37e22e57c0..0000000000 --- a/runtime/plugin/README.txt +++ /dev/null @@ -1,19 +0,0 @@ -The plugin directory is for standard Vim plugin scripts. - -All files here ending in .vim will be sourced by Vim when it starts up. -Look in the file for hints on how it can be disabled without deleting it. - -getscriptPlugin.vim get latest version of Vim scripts -gzip.vim edit compressed files -matchparen.vim highlight paren matching the one under the cursor -netrwPlugin.vim edit files over a network and browse (remote) directories -rrhelper.vim used for --remote-wait editing -spellfile.vim download a spellfile when it's missing -tarPlugin.vim edit (compressed) tar files -tohtml.vim convert a file with syntax highlighting to HTML -vimballPlugin.vim create and unpack .vba files -zipPlugin.vim edit zip archives - -Note: the explorer.vim plugin is no longer here, the netrw.vim plugin has -taken over browsing directories (also for remote directories). - diff --git a/runtime/plugin/rrhelper.vim b/runtime/plugin/rrhelper.vim deleted file mode 100644 index b09cbc10b9..0000000000 --- a/runtime/plugin/rrhelper.vim +++ /dev/null @@ -1,48 +0,0 @@ -" Vim plugin with helper function(s) for --remote-wait -" Maintainer: Flemming Madsen -" Last Change: 2008 May 29 - -" Has this already been loaded? -if exists("loaded_rrhelper") || !has("clientserver") - finish -endif -let loaded_rrhelper = 1 - -" Setup answers for a --remote-wait client who will assume -" a SetupRemoteReplies() function in the command server - -function SetupRemoteReplies() - let cnt = 0 - let max = argc() - - let id = expand("") - if id == 0 - return - endif - while cnt < max - " Handle same file from more clients and file being more than once - " on the command line by encoding this stuff in the group name - let uniqueGroup = "RemoteReply_".id."_".cnt - - " Path separators are always forward slashes for the autocommand pattern. - " Escape special characters with a backslash. - let f = substitute(argv(cnt), '\\', '/', "g") - if exists('*fnameescape') - let f = fnameescape(f) - else - let f = escape(f, " \t\n*?[{`$\\%#'\"|!<") - endif - execute "augroup ".uniqueGroup - execute "autocmd ".uniqueGroup." BufUnload ". f ." call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')" - let cnt = cnt + 1 - endwhile - augroup END -endfunc - -function DoRemoteReply(id, cnt, group, file) - call server2client(a:id, a:cnt) - execute 'autocmd! '.a:group.' BufUnload '.a:file - execute 'augroup! '.a:group -endfunc - -" vim: set sw=2 sts=2 : From 2ee4ce0639d9c41f3c06eb03b46061d954e8ea28 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 4 Nov 2018 22:59:39 +0100 Subject: [PATCH 4/7] doc: merge sponsor.txt into intro.txt Also mention how to donate to Nvim. closes #8603 --- runtime/doc/debug.txt | 8 +- runtime/doc/intro.txt | 171 ++++++++++--------------------- runtime/doc/sponsor.txt | 216 ---------------------------------------- runtime/doc/usr_01.txt | 6 +- scripts/vim-patch.sh | 4 +- 5 files changed, 59 insertions(+), 346 deletions(-) delete mode 100644 runtime/doc/sponsor.txt diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt index 441d31c7b9..835b35b388 100644 --- a/runtime/doc/debug.txt +++ b/runtime/doc/debug.txt @@ -162,12 +162,8 @@ In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions in *get-ms-debuggers* 3.5 Obtaining Microsoft Debugging Tools ~ -The Debugging Tools for Windows (including WinDbg) can be downloaded from - http://www.microsoft.com/whdc/devtools/debugging/default.mspx -This includes the WinDbg debugger. - -Visual C++ 2005 Express Edition can be downloaded for free from: - http://msdn.microsoft.com/vstudio/express/visualC/default.aspx +Visual Studio 2017 Community Edition can be downloaded for free from: + https://visualstudio.microsoft.com/downloads/ ========================================================================= vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index bf2e86ae46..b74079e74e 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -1,7 +1,7 @@ *intro.txt* Nvim - VIM REFERENCE MANUAL by Bram Moolenaar + NVIM REFERENCE MANUAL Introduction to Vim *ref* *reference* @@ -9,7 +9,7 @@ Introduction to Vim *ref* *reference* Type |gO| to see the table of contents. ============================================================================== -1. Introduction *intro* +Introduction *intro* Vim stands for Vi IMproved. It used to be Vi IMitation, but there are so many improvements that a name change was appropriate. Vim is a text editor which @@ -28,8 +28,8 @@ is not located in the default place. You can jump to subjects like with tags: Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back. *pronounce* -Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a -capital, since it's a name, again like Jim. +Vim is pronounced as one word, like Jim. Nvim is pronounced as N-vim, or, +continuing with the Jim simile, N-Jim, which sounds like Ninja. This manual is a reference for all the Vim commands and options. This is not an introduction to the use of Vi or Vim, it gets a bit complicated here and @@ -37,134 +37,67 @@ there. For beginners, there is a hands-on |tutor|. To learn using Vim, read the user manual |usr_toc.txt|. *book* -There are many books on Vi that contain a section for beginners. There are -two books I can recommend: +There are many books on Vi and Vim. We recommend these books: + + "Practical Vim" by Drew Neil + "Modern Vim" by Drew Neil + https://vimcasts.org/publications/ + +"Practical Vim" is a popular because of its focus on quickly learning common +editing tasks with Vim. "Modern Vim" explores new features introduced by Nvim +and Vim 8. "Vim - Vi Improved" by Steve Oualline -This is the very first book completely dedicated to Vim. It is very good for -beginners. The most often used commands are explained with pictures and -examples. The less often used commands are also explained, the more advanced -features are summarized. There is a comprehensive index and a quick -reference. Parts of this book have been included in the user manual -|frombook|. -Published by New Riders Publishing. ISBN: 0735710015 +This is the first book dedicated to Vim. Parts of it were included in the +user manual. |frombook| ISBN: 0735710015 For more information try one of these: - http://iccf-holland.org/click5.html - http://www.vim.org/iccf/click5.html - - "Learning the Vi editor" by Linda Lamb and Arnold Robbins - -This is a book about Vi that includes a chapter on Vim (in the sixth edition). -The first steps in Vi are explained very well. The commands that Vim adds are -only briefly mentioned. There is also a German translation. -Published by O'Reilly. ISBN: 1-56592-426-6. + https://iccf-holland.org/click5.html + https://www.vim.org/iccf/click5.html ============================================================================== -2. Vim on the internet *internet* +Nvim on the interwebs *internet* *www* *WWW* *faq* *FAQ* *distribution* *download* -The Vim pages contain the most recent information about Vim. They also -contain links to the most recent version of Vim. The FAQ is a list of -Frequently Asked Questions. Read this if you have problems. - Vim home page: http://www.vim.org/ - Vim FAQ: http://vimdoc.sf.net/ - Downloading: ftp://ftp.vim.org/pub/vim/MIRRORS - - -Usenet News group where Vim is discussed: *news* *usenet* - comp.editors -This group is also for other editors. If you write about Vim, don't forget to -mention that. - - *mail-list* *maillist* -There are several mailing lists for Vim: - *vim-use* *vim_use* - For discussions about using existing versions of Vim: Useful mappings, - questions, answers, where to get a specific version, etc. There are - quite a few people watching this list and answering questions, also - for beginners. Don't hesitate to ask your question here. - *vim-dev* *vim_dev* *vimdev* - For discussions about changing Vim: New features, porting, patches, - beta-test versions, etc. - *vim-announce* *vim_announce* - Announcements about new versions of Vim; also for beta-test versions - and ports to different systems. This is a read-only list. - *vim-mac* *vim_mac* - For discussions about using and improving the Macintosh version of - Vim. - -See http://www.vim.org/maillist.php for the latest information. - -NOTE: -- You can only send messages to these lists if you have subscribed! -- You need to send the messages from the same location as where you subscribed - from (to avoid spam mail). -- Maximum message size is 40000 characters. - - *subscribe-maillist* -If you want to join, send a message to - -Make sure that your "From:" address is correct. Then the list server will -give you help on how to subscribe. - - *maillist-archive* -For more information and archives look on the Vim maillist page: -http://www.vim.org/maillist.php + Nvim home page: https://neovim.io/ + Nvim FAQ: https://github.com/neovim/neovim/wiki/FAQ + Downloads: https://github.com/neovim/neovim/releases + Vim FAQ: https://vimhelp.appspot.com/vim_faq.txt.html + Vim home page: https://www.vim.org/ Bug reports: *bugs* *bug-reports* *bugreport.vim* Report bugs on GitHub: https://github.com/neovim/neovim/issues -Please be brief; all the time that is spent on answering mail is subtracted -from the time that is spent on improving Vim! Always give a reproducible -example and try to find out which settings or other things trigger the bug. +Be brief, yet complete. Always give a reproducible example and try to find +out which settings or other things trigger the bug. -Preferably start Vim with: > - vim --clean -u reproduce.vim -Where reproduce.vim is a script that reproduces the problem. Try different -machines, if relevant (is this an MS-Windows specific bug perhaps?). - -Send me patches if you can! - -It will help to include information about the version of Vim you are using and -your setup. You can get the information with this command: > - :so $VIMRUNTIME/bugreport.vim -This will create a file "bugreport.txt" in the current directory, with a lot -of information of your environment. Before sending this out, check if it -doesn't contain any confidential information! - -If Vim crashes, please try to find out where. You can find help on this here: -|debug.txt|. - -In case of doubt or when you wonder if the problem has already been fixed but -you can't find a fix for it, become a member of the vim-dev maillist and ask -your question there. |maillist| - - *year-2000* *Y2K* -Since Vim internally doesn't use dates for editing, there is no year 2000 -problem to worry about. Vim does use the time in the form of seconds since -January 1st 1970. It is used for a time-stamp check of the edited file and -the swap file, which is not critical and should only cause warning messages. - -There might be a year 2038 problem, when the seconds don't fit in a 32 bit int -anymore. This depends on the compiler, libraries and operating system. -Specifically, time_t and the ctime() function are used. And the time_t is -stored in four bytes in the swap file. But that's only used for printing a -file date/time for recovery, it will never affect normal editing. - -The Vim strftime() function directly uses the strftime() system function. -localtime() uses the time() system function. getftime() uses the time -returned by the stat() system function. If your system libraries are year -2000 compliant, Vim is too. - -The user may create scripts for Vim that use external commands. These might -introduce Y2K problems, but those are not really part of Vim itself. +If Nvim crashes, try to get a backtrace. See |debug.txt|. ============================================================================== -3. Credits *credits* *author* *Bram* *Moolenaar* +Sponsor Vim/Nvim development *sponsor* *register* + +Fixing bugs and adding new features takes a lot of time and effort. To show +your appreciation for the work and motivate Bram and others to continue +working on Vim please send a donation. + +Since Bram is back to a paid job the money will now be used to help children +in Uganda. See |uganda|. But at the same time donations increase Bram's +motivation to keep working on Vim! + +For the most recent information about sponsoring look on the Vim web site: + + https://www.vim.org/sponsor/ + + +Neovim development is funded separately from Vim: + + https://neovim.io/sponsors/ + +============================================================================== +Credits *credits* *author* *Bram* *Moolenaar* Most of Vim was written by Bram Moolenaar . @@ -273,7 +206,7 @@ Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't freely available. ============================================================================== -4. Notation *notation* +Notation *notation* When syntax highlighting is used to read this, text that is not typed literally is often highlighted with the Special group. These are items in [], @@ -494,7 +427,7 @@ examples and use them directly. Or type them literally, including the '<' and ":autocmd"! ============================================================================== -5. Modes, introduction *vim-modes-intro* *vim-modes* +Modes, introduction *vim-modes-intro* *vim-modes* Vim has seven BASIC modes: @@ -579,7 +512,7 @@ Insert Select mode Entered when starting Select mode from Insert mode. is shown at the bottom of the window. ============================================================================== -6. Switching from mode to mode *mode-switching* +Switching from mode to mode *mode-switching* If for any reason you do not know which mode you are in, you can always get back to Normal mode by typing twice. This doesn't work for Ex mode @@ -650,7 +583,7 @@ Q or gQ Switch to Ex mode. This is like typing ":" commands Use the ":vi" command |:visual| to exit this mode. ============================================================================== -7. The window contents *window-contents* +The window contents *window-contents* In Normal mode and Insert/Replace mode the screen window will show the current contents of the buffer: What You See Is What You Get. There are two @@ -773,7 +706,7 @@ On most Unix systems, resizing the window is recognized and handled correctly by Vim. ============================================================================== -8. Definitions *definitions* +Definitions *definitions* buffer Contains lines of text, usually read from a file. screen The whole area that Vim uses to work in. This can be diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt deleted file mode 100644 index cb6bdad358..0000000000 --- a/runtime/doc/sponsor.txt +++ /dev/null @@ -1,216 +0,0 @@ -*sponsor.txt* Nvim - - - VIM REFERENCE MANUAL by Bram Moolenaar - - - -SPONSOR VIM DEVELOPMENT *sponsor* - -Fixing bugs and adding new features takes a lot of time and effort. To show -your appreciation for the work and motivate Bram and others to continue -working on Vim please send a donation. - -Since Bram is back to a paid job the money will now be used to help children -in Uganda. See |uganda|. But at the same time donations increase Bram's -motivation to keep working on Vim! - -For the most recent information about sponsoring look on the Vim web site: - - http://www.vim.org/sponsor/ - -More explanations can be found in the |sponsor-faq|. - - -REGISTERED VIM USER *register* - -You can become a registered Vim user by sending at least 10 euro. This works -similar to sponsoring Vim, see |sponsor| above. Registration was made -possible for the situation where your boss or bookkeeper may be willing to -register software, but does not like the terms "sponsoring" and "donation". - -More explanations can be found in the |register-faq|. - - -VOTE FOR FEATURES *vote-for-features* - -To give registered Vim users and sponsors an advantage over lurkers they can -vote for the items Bram should work on. How does this voting work? - -1. You send at least 10 euro. See below for ways to transfer money - |send-money|. - -2. You will be e-mailed a registration key. Enter this key on your account - page on the Vim website. You can easily create an account if you don't - have one yet. - -3. You can enter your votes on the voting page. There is a link to that page - on your account page after entering a registration key. Your votes will - be counted for two years. - -4. The voting results appear on the results page, which is visible for - everybody: http://www.vim.org/sponsor/vote_results.php - -Additionally, once you have sent 100 euro or more in total, your name appears -in the "Vim hall of honour": http://www.vim.org/sponsor/hall_of_honour.php -But only if you enable this on your account page. - - -HOW TO SEND MONEY *send-money* - -Credit card Through PayPal, see the PayPal site for information: - https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q - The e-mail address for sending sponsorship money is: - donate@vim.org - The e-mail address for Vim registration is: - register@vim.org - Using Euro is preferred, other currencies are also accepted. - In Euro countries a bank transfer is preferred, this has lower - costs. - -Other methods See |iccf-donations|. - Include "Vim sponsor" or "Vim registration" in the comment of - your money transfer. Send me an e-mail that mentions the - amount you transferred if you want to vote for features and - show others you are a registered Vim user or sponsor. - -Cash Small amounts can be sent with ordinary mail. Put something - around the money, so that it's not noticeable from the - outside. Mention your e-mail address if you want to vote for - features and show others you are a registered Vim user or - sponsor. - -You can use this permanent address: - Bram Moolenaar - Finsterruetihof 1 - 8134 Adliswil - Switzerland - - - -QUESTIONS AND ANSWERS *sponsor-faq* *register-faq* - -Why should I give money? - -If you do not show your appreciation for Vim then Bram will be less motivated -to fix bugs and add new features. He will do something else instead. - - -How much money should I send? - -That is up to you. The more you give, the more children will be helped. -An indication for individuals that use Vim at home: 10 Euro per year. For -professional use: 30 Euro per year per person. Send at least 10 euro to be -able to vote for features. - - -What do I get in return? - -Each registered Vim user and sponsor who donates at least 10 euro will be able -to vote for new features. These votes will give priority to the work on Vim. -The votes are valid for two years. The more money you send the more your -votes count |votes-counted|. - -If you send 100 Euro or more in total you will be mentioned on the "Vim hall -of honour" page on the Vim web site. But only if you enable this on your -account page. You can also select whether the amount will be visible. - - -How do I become a Vim sponsor or registered Vim user? - -Send money, as explained above |send-money| and include your e-mail address. -When the money has been received you will receive a unique registration key. -This key can be used on the Vim website to activate voting on your Vim -account. You will then get an extra page where you can vote for features and -choose whether others will be able to see that you donated. There is a link -to this page on your "My Account" page. - - -What is the difference between sponsoring and registering? - -It has a different name. Use the term "registration" if your boss doesn't -like "sponsoring" or "donation". The benefits are the same. - - -How can I send money? - -See |send-money|. Check the web site for the most recent information: -http://www.vim.org/sponsor/ - - -Why don't you use the SourceForge donation system? - -SourceForge takes 5% of the donations for themselves. If you want to support -SourceForge you can send money to them directly. - - -I cannot afford to send money, may I still use Vim? - -Yes. - - -I did not register Vim, can I use all available features? - -Yes. - - -I noticed a bug, do I need to register before I can report it? - -No, suggestions for improving Vim can always be given. For improvements use -the developer |maillist|, for reporting bugs see |bugs|. - - -How are my votes counted? *votes-counted* - -You may vote when you send 10 euro or more. You can enter up to ten votes. -You can select the same item several times to give it more points. You can -also enter three counter votes, these count as negative points. - -When you send 30 euro or more the points are doubled. Above 100 euro they -count four times, above 300 euro they count six times, above 1000 euro ten -times. - - -Can I change my votes? - -You can change your votes any time you like, up to two years after you -sent money. The points will be counted right away. - - -Can I add an item to vote on? - -Not directly. You can suggest items to vote on to Bram. He will consider -fitting your item into the list. - - -How about Charityware? - -Currently the Vim donations go to |uganda| anyway. Thus it doesn't matter if -you sponsor Vim or ICCF. Except that Vim sponsoring will allow you to vote -for features. - - -I donated $$$, now please add feature XYZ! - -There is no direct relation between your donation and the work Bram does. -Otherwise you would be paying for work and we would have to pay tax over the -donation. If you want to hire Bram for specific work, contact him directly, -don't use the donation system. - - -Are the donations tax deductible? - -That depends on your country. The donations to help the children in |Uganda| -are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF -website http://iccf-holland.org/donate.html. You must send an e-mail to Bram -to let him know that the donation is done because of the use of Vim. - - -Can you send me a bill? - -No, because there is no relation between the money you send and the work that -is done. But a receipt is possible. - - - - vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt index f96043c409..3deaf181e5 100644 --- a/runtime/doc/usr_01.txt +++ b/runtime/doc/usr_01.txt @@ -68,9 +68,9 @@ For more info see |vimrc|. ============================================================================== *01.3* Using the Vim tutor *tutor* *vimtutor* -Instead of reading the text (boring!) you can use the vimtutor to learn your -first Vim commands. This is a 30 minute tutorial that teaches the most basic -Vim functionality hands-on. +Instead of reading the text (boring!) you can use :Tutor to learn your first +Vim commands. This is a 30 minute tutorial that teaches the most basic Vim +functionality hands-on. To start the tutorial, execute > diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh index de0d040b47..725863102a 100755 --- a/scripts/vim-patch.sh +++ b/scripts/vim-patch.sh @@ -149,8 +149,8 @@ preprocess_patch() { local na_src='proto\|Make*\|gui_*\|if_lua\|if_mzsch\|if_olepp\|if_ole\|if_perl\|if_py\|if_ruby\|if_tcl\|if_xcmdsrv' 2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/\S*\<\%(testdir/\)\@/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/runtime/doc/\<\%('${na_doc}'\)\>@norm! d/\v(^diff)|%$ ' +w +q "$file" # Remove "Last change ..." changes in doc files. From 1bbbd5f0ff27e75fd0d68f16cf1817cb19218bb4 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 5 Nov 2018 01:54:24 +0100 Subject: [PATCH 5/7] build: `make helphtml` --- Makefile | 4 ++++ runtime/CMakeLists.txt | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index a741c564e2..717cf2f68d 100644 --- a/Makefile +++ b/Makefile @@ -103,6 +103,10 @@ endif helptags: | nvim +$(BUILD_CMD) -C build helptags +# Builds help HTML _and_ checks for invalid help tags. +helphtml: | nvim helptags + +$(BUILD_CMD) -C build doc_html + functionaltest: | nvim +$(BUILD_CMD) -C build functionaltest diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index 70e4ca2eec..ad706af087 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -68,9 +68,9 @@ foreach(DF ${DOCFILES}) endforeach() add_custom_target(helptags - COMMAND ${CMAKE_COMMAND} -E remove ${GENERATED_RUNTIME_DIR}/doc/* + COMMAND ${CMAKE_COMMAND} -E remove doc/* COMMAND ${CMAKE_COMMAND} -E copy_directory - ${PROJECT_SOURCE_DIR}/runtime/doc ${GENERATED_RUNTIME_DIR}/doc + ${PROJECT_SOURCE_DIR}/runtime/doc doc COMMAND "${PROJECT_BINARY_DIR}/bin/nvim" -u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit DEPENDS @@ -87,7 +87,7 @@ add_custom_command(OUTPUT ${GENERATED_HELP_TAGS} add_custom_target(doc_html COMMAND make html DEPENDS - ${GENERATED_HELP_TAGS} + helptags WORKING_DIRECTORY "${GENERATED_RUNTIME_DIR}/doc" ) From 72b1ce7f30f8bdc60ba6e2bcfd2eca5e687b6f3e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 5 Nov 2018 02:47:22 +0100 Subject: [PATCH 6/7] doc: fix/remove broken tag references --- runtime/doc/api.txt | 4 ++-- runtime/doc/autocmd.txt | 4 ++-- runtime/doc/cmdline.txt | 2 +- runtime/doc/eval.txt | 4 ++-- runtime/doc/if_lua.txt | 5 ++--- runtime/doc/index.txt | 1 - runtime/doc/options.txt | 8 +++----- runtime/doc/remote.txt | 5 ----- runtime/doc/sign.txt | 1 - runtime/doc/ui.txt | 2 +- runtime/doc/usr_05.txt | 2 +- runtime/doc/usr_45.txt | 3 +-- runtime/doc/various.txt | 2 +- 13 files changed, 16 insertions(+), 27 deletions(-) diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index e816d0ae76..712a8878ba 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -97,7 +97,7 @@ nvim_buf_lines_event[{buf}, {changedtick}, {firstline}, {lastline}, {linedata}, When {changedtick} is |v:null| this means the screen lines (display) changed but not the buffer contents. {linedata} contains the changed screen lines. - This happens when |inccommand| shows a buffer preview. + This happens when 'inccommand' shows a buffer preview. Properties:~ {buf} API buffer handle (buffer number) @@ -138,7 +138,7 @@ nvim_buf_changedtick_event[{buf}, {changedtick}] *nvim_buf_changedtick_event* nvim_buf_detach_event[{buf}] *nvim_buf_detach_event* When buffer is detached (i.e. updates are disabled). Triggered explicitly by - |nvim_buf_detach| or implicitly in these cases: + |nvim_buf_detach()| or implicitly in these cases: - Buffer was |abandon|ed and 'hidden' is not set. - Buffer was reloaded, e.g. with |:edit| or an external change triggered |:checktime| or 'autoread'. diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index 75a26bf614..a2772e2485 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -278,7 +278,7 @@ Name triggered by ~ |VimEnter| after doing all the startup stuff |GUIEnter| after starting the GUI successfully |GUIFailed| after starting the GUI failed -|TermResponse| after the terminal response to |t_RV| is received +|TermResponse| after the terminal response to t_RV is received |QuitPre| when using `:quit`, before deciding whether to exit |ExitPre| when using a command that may make Vim exit |VimLeavePre| before exiting Nvim, before writing the shada file @@ -989,7 +989,7 @@ TermClose When a |terminal| job ends. TermOpen When a |terminal| job is starting. Can be used to configure the terminal buffer. *TermResponse* -TermResponse After the response to |t_RV| is received from +TermResponse After the response to t_RV is received from the terminal. The value of |v:termresponse| can be used to do things depending on the terminal version. Note that this event may be diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index d4f8d170ef..3f22fcb504 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -212,7 +212,7 @@ CTRL-\ e {expr} *c_CTRL-\_e* *c_CTRL-Y* CTRL-Y When there is a modeless selection, copy the selection into - the clipboard. |modeless-selection| + the clipboard. If there is no selection CTRL-Y is inserted as a character. CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_* *c_* *c_CR* diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index f03189485c..91986a9442 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2925,7 +2925,7 @@ confirm({msg} [, {choices} [, {default} [, {type}]]]) made. It returns the number of the choice. For the first choice this is 1. - {msg} is displayed in a |dialog| with {choices} as the + {msg} is displayed in a dialog with {choices} as the alternatives. When {choices} is missing or empty, "&OK" is used (and translated). {msg} is a String, use '\n' to include a newline. Only on @@ -8560,7 +8560,7 @@ tag_old_static Compiled with support for old static tags |tag-old-static|. tag_any_white Compiled with support for any white characters in tags files |tag-any-white|. -termresponse Compiled with support for |t_RV| and |v:termresponse|. +termresponse Compiled with support for t_RV and |v:termresponse|. textobjects Compiled with support for |text-objects|. timers Compiled with |timer_start()| support. title Compiled with window title support |'title'|. diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt index 17c1a8a329..9dbbf87995 100644 --- a/runtime/doc/if_lua.txt +++ b/runtime/doc/if_lua.txt @@ -229,8 +229,7 @@ shared between command calls. All Lua default libraries are available. In addition, Lua "print" function has its output redirected to the Nvim message area, with arguments separated by a white space instead of a tab. -Lua uses the "vim" module (see |lua-vim|) to issue commands to Nvim -and manage buffers (|lua-buffer|) and windows (|lua-window|). However, +Lua uses the "vim" module (see |lua-vim|) to issue commands to Nvim. However, procedures that alter buffer content, open new buffers, and change cursor position are restricted when the command is executed in the |sandbox|. @@ -261,7 +260,7 @@ vim.stricmp(a, b) *lua-vim.stricmp* greater then b or a is lesser then b respectively. vim.type_idx *lua-vim.type_idx* - Type index for use in |lua-special-tables|. Specifying one of the + Type index for use in |lua-special-tbl|. Specifying one of the values from |lua-vim.types| allows typing the empty table (it is unclear whether empty lua table represents empty list or empty array) and forcing integral numbers to be |Float|. See |lua-special-tbl| for diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt index ed3f9a1776..7024a57333 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1472,7 +1472,6 @@ tag command action ~ |:sfind| :sf[ind] split current window and edit file in 'path' |:sfirst| :sfir[st] split window and go to first file in the argument list -|:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key |:sign| :sig[n] manipulate signs |:silent| :sil[ent] run a command silently |:sleep| :sl[eep] do nothing for a few seconds diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 7cf3aa1d60..d1e84c5aec 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1485,7 +1485,7 @@ A jump table for the options with a short description can be found at |Q_op|. global When 'confirm' is on, certain operations that would normally fail because of unsaved changes to a buffer, e.g. ":q" and ":e", - instead raise a |dialog| asking if you wish to save the current + instead raise a dialog asking if you wish to save the current file(s). You can still use a ! to unconditionally |abandon| a buffer. If 'confirm' is off you can still activate confirmation for one command only (this is most useful in mappings) with the |:confirm| @@ -2803,8 +2803,7 @@ A jump table for the options with a short description can be found at |Q_op|. :set guifont=* < will bring up a font requester, where you can pick the font you want. - The font name depends on the GUI used. See |setting-guifont| for a - way to set 'guifont' for various systems. + The font name depends on the GUI used. For Mac OSX you can use something like this: > :set guifont=Monaco:h10 @@ -6586,8 +6585,7 @@ A jump table for the options with a short description can be found at |Q_op|. menu. This conflicts with the use of the ALT key for mappings and entering special characters. This option tells what to do: no Don't use ALT keys for menus. ALT key combinations can be - mapped, but there is no automatic handling. This can then be - done with the |:simalt| command. + mapped, but there is no automatic handling. yes ALT key handling is done by the windowing system. ALT key combinations cannot be mapped. menu Using ALT in combination with a character that is a menu diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt index 142d7b492a..6c2ceb45be 100644 --- a/runtime/doc/remote.txt +++ b/runtime/doc/remote.txt @@ -167,11 +167,6 @@ a client and send strings to other instances of Vim on the same X11 display. When an X11 GUI Vim (gvim) is started, it will try to register a send-server name on the 'VimRegistry' property on the root window. -A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can -also act as a command server if a server name is explicitly given with the ---servername argument, or when Vim was build with the |+autoservername| -feature. - An empty --servername argument will cause the command server to be disabled. To send commands to a Vim server from another application, read the source diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt index a26c0a3ac9..273d2b984c 100644 --- a/runtime/doc/sign.txt +++ b/runtime/doc/sign.txt @@ -79,7 +79,6 @@ DEFINING A SIGN. *:sign-define* *E255* *E160* *E612* will cause redraw problems. toolkit supports ~ Win32 .bmp, .ico, .cur - pixmap (.xpm) |+xpm_w32| linehl={group} Highlighting group used for the whole line the sign is placed diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt index a0f1b0770e..3477e53545 100644 --- a/runtime/doc/ui.txt +++ b/runtime/doc/ui.txt @@ -167,7 +167,7 @@ the editor. mouse support is active. Some options like 'ambiwidth' have already taken effect on the grid, where appropriate empty cells are added, however a UI might still use such options when rendering raw text - sent from Nvim, like for |ui-ext-cmdline|. + sent from Nvim, like for |ui-cmdline|. ["mode_change", mode, mode_idx] The mode changed. The first parameter `mode` is a string representing diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt index 38e858801b..af17d75656 100644 --- a/runtime/doc/usr_05.txt +++ b/runtime/doc/usr_05.txt @@ -321,7 +321,7 @@ Where can you find plugins? - Some come with Vim. You can find them in the directory $VIMRUNTIME/macros and its sub-directories and under $VIM/vimfiles/pack/dist/opt/. - Download from the net. There is a large collection on http://www.vim.org. -- They are sometimes posted in a Vim |maillist|. +- They are sometimes posted in a Vim maillist. - You could write one yourself, see |write-plugin|. diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt index ae2aae7596..be33f0be6d 100644 --- a/runtime/doc/usr_45.txt +++ b/runtime/doc/usr_45.txt @@ -203,8 +203,7 @@ USING UNICODE IN A UNICODE TERMINAL There are terminals that support Unicode directly. The standard xterm that comes with XFree86 is one of them. Let's use that as an example. - First of all, the xterm must have been compiled with Unicode support. See -|UTF8-xterm| how to check that and how to compile it when needed. + First of all, the xterm must have been compiled with Unicode support. Start the xterm with the "-u8" argument. You might also need so specify a font. Example: > diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index 11ee8f8ca9..5f40ccf2ec 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -381,7 +381,7 @@ T *+tag_binary* binary searching in tags file |tag-binary-search| N *+tag_old_static* old method for static tags |tag-old-static| m *+tag_any_white* any white space allowed in tags file |tag-any-white| B *+termguicolors* 24-bit color in xterm-compatible terminals support -N *+termresponse* support for |t_RV| and |v:termresponse| +N *+termresponse* support for t_RV and |v:termresponse| N *+textobjects* |text-objects| selection N *+timers* the |timer_start()| function N *+title* Setting the window 'title' and 'icon' From b96730bc3bc71e03004b9720bcd0ac67a2a7bb85 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 5 Nov 2018 03:50:22 +0100 Subject: [PATCH 7/7] doc: API --- runtime/doc/api.txt | 35 ++++++++++++++++++++++++++++------- src/nvim/api/buffer.c | 20 +++++++++----------- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index 712a8878ba..e16b6b7e75 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -638,7 +638,7 @@ nvim_set_client_info({name}, {version}, {type}, {methods}, Clients might define their own keys, but the following are suggested: "website" Website of client (for instance github repository) - "license" Informal descripton of the + "license" Informal description of the license, such as "Apache 2", "GPLv3" or "MIT" "logo" URI or path to image, preferably small logo or icon. .png or .svg @@ -862,8 +862,7 @@ nvim_buf_line_count({buffer}) *nvim_buf_line_count()* {buffer} Buffer handle Return: ~ - Line count, or `0` if the buffer has been unloaded (see - |api-buffer|). + Line count, or 0 for unloaded buffer. |api-buffer| nvim_buf_attach({buffer}, {send_buffer}, {opts}) *nvim_buf_attach()* Activate updates from this buffer to the current channel. @@ -912,8 +911,7 @@ nvim_buf_get_lines({buffer}, {start}, {end}, {strict_indexing}) error. Return: ~ - Array of lines. If the buffer has been unloaded then an - empty array will be returned instead. (See |api-buffer|.) + Array of lines, or empty array for unloaded buffer. *nvim_buf_set_lines()* nvim_buf_set_lines({buffer}, {start}, {end}, {strict_indexing}, @@ -940,6 +938,25 @@ nvim_buf_set_lines({buffer}, {start}, {end}, {strict_indexing}, error. {replacement} Array of lines to use as replacement +nvim_buf_get_offset({buffer}, {index}) *nvim_buf_get_offset()* + Returns the byte offset for a line. + + Line 1 (index=0) has offset 0. UTF-8 bytes are counted. EOL is + one byte. 'fileformat' and 'fileencoding' are ignored. The + line index just after the last line gives the total byte-count + of the buffer. A final EOL byte is counted if it would be + written, see 'eol'. + + Unlike |line2byte()|, throws error for out-of-bounds indexing. + Returns -1 for unloaded buffer. + + Parameters: ~ + {buffer} Buffer handle + {index} Line index + + Return: ~ + Integer byte offset, or -1 for unloaded buffer. + nvim_buf_get_var({buffer}, {name}) *nvim_buf_get_var()* Gets a buffer-scoped (b:) variable. @@ -1106,8 +1123,8 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line}, *nvim_buf_clear_highlight()* nvim_buf_clear_highlight({buffer}, {src_id}, {line_start}, {line_end}) - Clears highlights from a given source group and a range of - lines + Clears highlights and virtual text from a given source id and + range of lines To clear a source group in the entire buffer, pass in 0 and -1 to line_start and line_end respectively. @@ -1132,6 +1149,10 @@ nvim_buf_set_virtual_text({buffer}, {src_id}, {line}, {chunks}, the right of the ordinary text, this will contain the |lcs- eol| char if set, otherwise just be a space. + The same src_id can be used for both virtual text and + highlights added by nvim_buf_add_highlight. Virtual text is + cleared using nvim_buf_clear_highlight. + Parameters: ~ {buffer} Buffer handle {src_id} Source group to use or 0 to use a new group, or diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index 39330690e8..487a912882 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -51,8 +51,7 @@ /// /// @param buffer Buffer handle /// @param[out] err Error details, if any -/// @return Line count, or \`0` if the buffer has been unloaded (see -/// |api-buffer|). +/// @return Line count, or 0 for unloaded buffer. |api-buffer| Integer nvim_buf_line_count(Buffer buffer, Error *err) FUNC_API_SINCE(1) { @@ -227,8 +226,7 @@ ArrayOf(String) buffer_get_line_slice(Buffer buffer, /// @param end Last line index (exclusive) /// @param strict_indexing Whether out-of-bounds should be an error. /// @param[out] err Error details, if any -/// @return Array of lines. If the buffer has been unloaded then an empty array -/// will be returned instead. (See |api-buffer|.) +/// @return Array of lines, or empty array for unloaded buffer. ArrayOf(String) nvim_buf_get_lines(uint64_t channel_id, Buffer buffer, Integer start, @@ -491,12 +489,12 @@ end: try_end(err); } -/// Return the byte offset for a line. -// -/// The first line returns 0. UTF-8 bytes are counted, and EOL counts as one -/// byte. 'fileformat' and 'fileencoding' are ignored. Sending in the index -/// just below the last line gives the total byte count for the entire buffer. -/// A final EOL is included if it would be written, see 'eol'. +/// Returns the byte offset for a line. +/// +/// Line 1 (index=0) has offset 0. UTF-8 bytes are counted. EOL is one byte. +/// 'fileformat' and 'fileencoding' are ignored. The line index just after the +/// last line gives the total byte-count of the buffer. A final EOL byte is +/// counted if it would be written, see 'eol'. /// /// Unlike |line2byte()|, throws error for out-of-bounds indexing. /// Returns -1 for unloaded buffer. @@ -504,7 +502,7 @@ end: /// @param buffer Buffer handle /// @param index Line index /// @param[out] err Error details, if any -/// @return Integer Byte offset +/// @return Integer byte offset, or -1 for unloaded buffer. Integer nvim_buf_get_offset(Buffer buffer, Integer index, Error *err) FUNC_API_SINCE(5) {