{"action":"created","issue":{"url":"https://api.github.com/repos/neovim/neovim/issues/2676","labels_url":"https://api.github.com/repos/neovim/neovim/issues/2676/labels{/name}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/2676/comments","events_url":"https://api.github.com/repos/neovim/neovim/issues/2676/events","html_url":"https://github.com/neovim/neovim/issues/2676","id":77087685,"number":2676,"title":"[Discussion/Tracking] Defaults ","user":{"login":"fmoralesc","id":221465,"avatar_url":"https://avatars.githubusercontent.com/u/221465?v=3","gravatar_id":"","url":"https://api.github.com/users/fmoralesc","html_url":"https://github.com/fmoralesc","followers_url":"https://api.github.com/users/fmoralesc/followers","following_url":"https://api.github.com/users/fmoralesc/following{/other_user}","gists_url":"https://api.github.com/users/fmoralesc/gists{/gist_id}","starred_url":"https://api.github.com/users/fmoralesc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fmoralesc/subscriptions","organizations_url":"https://api.github.com/users/fmoralesc/orgs","repos_url":"https://api.github.com/users/fmoralesc/repos","events_url":"https://api.github.com/users/fmoralesc/events{/privacy}","received_events_url":"https://api.github.com/users/fmoralesc/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/neovim/neovim/labels/defaults","name":"defaults","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/neovim/neovim/milestones/10","html_url":"https://github.com/neovim/neovim/milestones/0.2","labels_url":"https://api.github.com/repos/neovim/neovim/milestones/10/labels","id":1183808,"number":10,"title":"0.2","description":"beta release, codename: \"keanu\"","creator":{"login":"justinmk","id":1359421,"avatar_url":"https://avatars.githubusercontent.com/u/1359421?v=3","gravatar_id":"","url":"https://api.github.com/users/justinmk","html_url":"https://github.com/justinmk","followers_url":"https://api.github.com/users/justinmk/followers","following_url":"https://api.github.com/users/justinmk/following{/other_user}","gists_url":"https://api.github.com/users/justinmk/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmk/subscriptions","organizations_url":"https://api.github.com/users/justinmk/orgs","repos_url":"https://api.github.com/users/justinmk/repos","events_url":"https://api.github.com/users/justinmk/events{/privacy}","received_events_url":"https://api.github.com/users/justinmk/received_events","type":"User","site_admin":false},"open_issues":114,"closed_issues":25,"state":"open","created_at":"2015-06-27T19:05:24Z","updated_at":"2015-10-26T14:40:48Z","due_on":null,"closed_at":null},"comments":88,"created_at":"2015-05-16T17:31:55Z","updated_at":"2015-10-26T16:38:55Z","closed_at":null,"body":"I'm opening this issue to consolidate the discussions in #276, #1664, #1667, #2071 and elsewhere, and to have a place to track progress on the change of default settings. \r\n\r\n# Notes\r\n\r\n**RULE 1 of the default club**: These defaults should be adjusted considering the most common use cases for nvim.\r\n\r\n**RULE 2 of the default club**: If possible, changes to the defaults should be available in the scenario where there is no `$VIMRUNTIME` available (e.g., the `nvim` executable was copied over to a remote server).\r\n\r\nPRs opened for this must have `options:` as a prefix.\r\n\r\nThere must be a unequivocal argument in favor of changing the defaults, or to reject the proposed changes.\r\n\r\n@justinmk has stressed the need to keep the `set -&` and `set -&vim` idioms behaving as they do now (which means the approach in #1667 is not viable) (see https://github.com/neovim/neovim/issues/1664#issuecomment-67419807, https://github.com/neovim/neovim/pull/1667#issuecomment-99282602) (There's been some discussion on whether it's worth it to keep the `set-& idiom`, but that is lower priority).\r\n\r\nThe `vi` defaults are not to be changed or removed (see https://github.com/neovim/neovim/pull/1667#issuecomment-99159044). This means that if the option uses the `P_VI_DEF` flag, you'll have to change it to `P_VIM` and change the default for vim only. E.g.:\r\n~~~ c\r\n  {\"wildmode\",    \"wim\",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,\r\n   (char_u *)&p_wim, PV_NONE,\r\n   {(char_u *)\"full\", (char_u *)0L} SCRIPTID_INIT},\r\n~~~\r\nbecomes\r\n~~~ c\r\n  {\"wildmode\",    \"wim\",  P_STRING|P_VIM|P_COMMA|P_NODUP,\r\n   (char_u *)&p_wim, PV_NONE,\r\n   {(char_u *)\"full\", (char_u *)\"list:longest,full\"} SCRIPTID_INIT},\r\n~~~\r\n\r\n\r\nChanging some of these settings will cause the tests to behave differently, so keep it in mind when working on this.\r\n\r\nAlso keep in mind you'll need to update vim_diff.txt as well.\r\n\r\nThese changes are not a priority, and could be introduced after the first release.\r\n\r\n# New defaults and progress\r\n\r\n(These were the settings I had in #1667, which are based on sensible.vim and the discussions in #276. Feel free to comment on them). \r\n\r\nSetting | Status | Notes\r\n----------|---------|----------\r\n<ul><li>- [ ] `filetype plugin indent on`</li></ul> | **WIP** (https://github.com/neovim/neovim/pull/2675) | can also be fixed by including a default plugin manager |\r\n<ul><li>- [ ] `syntax enable`</li></ul> | **WIP** (https://github.com/neovim/neovim/pull/2675) | idem |\r\n<ul><li>- [x] `langnoremap`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2853) | \r\n<ul><li>- [x] `autoindent`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2857) | \r\n<ul><li>- [x] `backspace=indent,eol,start`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2639) | \r\n<ul><li>- [x] `complete-=i`</li></ul> |**INCLUDED** (https://github.com/neovim/neovim/pull/2854) | Reason: `i` can make completion slow as currently implemented.\r\n<ul><li>- [x] `smarttab`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2855) |\r\n<ul><li>- [x] `nrformats-=octal`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2668) |\r\n<ul><li>- [x] ~~`ttimeout ttimeoutlen=100`~~</li></ul> | **REJECTED** | \r\n<ul><li>- [x] `incsearch`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2858) |\r\n<ul><li>- [x] `hlsearch`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2859) |\r\n<ul><li>- [x] `mouse=a`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2860) | \r\n<ul><li>- [x] `laststatus=2`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2876) | \r\n<ul><li>- [x] ~~`ruler`~~ </li></ul> | **REJECTED** (https://github.com/neovim/neovim/pull/2874) | Can be super slow on functional tests |\r\n<ul><li>- [x] ~~`showcmd`~~ </li></ul> | **REJECTED** (https://github.com/neovim/neovim/pull/2873) | Can be super slow on the functional tests |\r\n<ul><li>- [x] `wildmenu`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2677) |\r\n<ul><li>- [x] ~~`wildmode=list:longest,full`~~</li></ul> | **REJECTED** (https://github.com/neovim/neovim/pull/2677) (#3395) | Not a clear win over the Vim default.\r\n<ul><li>- [x] ~~`scrolloff=1`~~</li></ul> | **REJECTED** | (there is a PR about it, though: https://github.com/neovim/neovim/pull/2687)\r\n<ul><li>- [x] ~~`sidescrolloff=5`~~</li></ul> | **REJECTED** | (because of the same reasons as `scrolloff=1`.\r\n<ul><li>- [x] `display+=lastline`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2866) | \r\n<ul><li>- [x] `listchars=tab:>\\ ,trail:-,nbsp:+`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2872) |\r\n<ul><li>- [x] `formatoptions+=j`</li></ul> | **INCLUDED**  (https://github.com/neovim/neovim/pull/2669) |\r\n<ul><li>- [x] search upwards for tags file. `setglobal tags-=./tags  tags^=./tags;`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2670) | \r\n<ul><li>- [x] `autoread`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2856) |\r\n<ul><li>- [x] ~~`fileformats+=mac`~~</li></ul> | **REJECTED** (https://github.com/neovim/neovim/issues/2867) | |\r\n<ul><li>- [x] `history=10000` </li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2868) | \r\n<ul><li>- [x] `tabpagemax=50`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2869) |\r\n<ul><li>- [x] `viminfo^=!`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2870) |\r\n<ul><li>- [x] `sessionoptions-=options`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2871) |\r\n<ul><li>- [x] `runtime! macros/matchit.vim`</li></ul> | **INCLUDED** (https://github.com/neovim/neovim/pull/2723) | \r\n<ul><li>- [x] ~~`shortmess+=c`~~</li></ul> | **REJECTED** | might not be appropriate generally, helps with autocomplete plugins | \r\n<ul><li>- [ ] `background=dark`</li></ul> | [#2894](https://github.com/neovim/neovim/pull/2894) | [details](https://github.com/neovim/neovim/issues/2676#issuecomment-114947570) | \r\n<ul><li>- [ ] auto-create `'backupdir'` if `'backup'` is set </li></ul> |  | _undecided_ | \r\n\r\nSome mappings have been proposed too:\r\n\r\nMapping | Status | Notes\r\n------------|---------|----------\r\n<ul><li>- [ ] Y yanks to the end of the line. `noremap Y y$`</li></ul> | |\r\n<ul><li>- [ ] allow undoing `<C-u>` (delete text typed in the current line) `inoremap <C-U> <C-G>u<C-U>`</li></ul> |  |\r\n<ul><li>- [ ] `<home>` goes to the beginning of the text on first press and the beginning of the line on second. it alternates afterwards.  `noremap <expr> <home> virtcol('.') - 1 <= indent('.') && col('.') > 1 ? '0' : '_'`</li></ul> |  |\r\n<ul><li>- [ ] `<esc><esc>` leaves terminal mode.</li></ul> |  |\r\n<ul><li>- [ ] use `<C-L>` to clear the highlighting of :set hlsearch. `nnoremap <silent> <C-L> :nohlsearch<CR><C-L>`</li></ul> | |\r\n\r\n# Other tasks\r\n\r\n- [x] Update runtime/vimrc_example.vim"},"comment":{"url":"https://api.github.com/repos/neovim/neovim/issues/comments/151202124","html_url":"https://github.com/neovim/neovim/issues/2676#issuecomment-151202124","issue_url":"https://api.github.com/repos/neovim/neovim/issues/2676","id":151202124,"user":{"login":"justinmk","id":1359421,"avatar_url":"https://avatars.githubusercontent.com/u/1359421?v=3","gravatar_id":"","url":"https://api.github.com/users/justinmk","html_url":"https://github.com/justinmk","followers_url":"https://api.github.com/users/justinmk/followers","following_url":"https://api.github.com/users/justinmk/following{/other_user}","gists_url":"https://api.github.com/users/justinmk/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmk/subscriptions","organizations_url":"https://api.github.com/users/justinmk/orgs","repos_url":"https://api.github.com/users/justinmk/repos","events_url":"https://api.github.com/users/justinmk/events{/privacy}","received_events_url":"https://api.github.com/users/justinmk/received_events","type":"User","site_admin":false},"created_at":"2015-10-26T16:38:55Z","updated_at":"2015-10-26T16:38:55Z","body":"@Grimy It's not an overwhelming win (something like 60/40 for/against) so it's a non-starter."}}