Adding windmove.el bindings as per TODO and ticket #10.
[vimpulse:vimpulse.git] / TODO
1
2 ;;; Development and documentation TODOs:
3
4 ;; - make sure I have added all stuff in Brad's viper additions and
5 ;;   from my collection, then start documenting already.  Once there
6 ;;   are even the simplest of docs (a nice key map) people will have a
7 ;;   far easier time using vimpulse and so I bet more will contribute.
8 ;;
9 ;; - the / key should allow isearch that works like Vim's, or until
10 ;;   that's implemented, it should at least remap / to isearch-forward
11 ;;   or viper-isearch-forward.  This should be an option that should
12 ;;   be disabled by default.  For now, have viper load .vimrc and
13 ;;   check for vim-specific option strings like "set incsearch".  If
14 ;;   anyone complains, rethink that plan.
15 ;;
16 ;; - Folding.  This should be implemented as a separate lisp library
17 ;;   usable for even non-viper users.  Which foldmethods to do first?
18 ;;   I personally only use foldmethod=marker, and even that only rarely.
19 ;;
20 ;; - i_C-(I forgot the letter) should do (copy-from-above-command 1)
21 ;;   from misc.el
22 ;;
23 ;; - add :set spell / :set nospell that uses flyspell-mode
24 ;;
25 ;; - add support for tabs.el, a tabs mode that works sensibly (get it
26 ;;   from Emacs Lisp List)
27 ;;     - minimum needed: :tabedit, :tabnext, :tabprevious
28 ;;     - since I'm emulating Vim, emulate its tab pages feature.  So a
29 ;;       tab page should be able to hold one or more buffers.
30 ;;
31 ;; - add Customize option to let users stop C-r from being redo?
32 ;;
33 ;; - email and try to get redo.el included with GNU Emacs (since I
34 ;;   won't include redo.el here since nobody else includes it in their
35 ;;   Lisp files either)
36 ;;
37 ;; - copy more features from Brad's work in darcs and from vimpact
38 ;;   into vimpulse
39 ;;
40 ;; - doc: look in google chat log, find description of one-char-off
41 ;;   bug, see if it applies to this or to the not-yet-released
42 ;;   viper-x, and if to this, mention under Bugs
43 ;;
44 ;; - doc: fix ref to "your home directory": Windows users don't have
45 ;;   one
46 ;;
47 ;; - doc: list all new keys (and maybe all differences from viper) in
48 ;;   Usage section
49 ;;
50 ;; - doc: describe all new keys in Usage section; can look at Vim
51 ;;   manual for ideas
52 ;;
53 ;; - modify how tramp works so it also automatically handles URLs
54 ;;   typed in the netrw syntax, i.e. http:// etc.  But first ask tramp
55 ;;   upstream if they could please make those changes themselves.
56 ;;
57 ;; - add CTRL-O for jumping back in the jumplist and CTRL-I for
58 ;;   jumping forwards (for undoing one CTRL-O).  I wonder if emacs'
59 ;;   tags functionality allows a jumplist.  I wonder if viper does
60 ;;   tags like nvi does.
61 ;;     - The global mark ring is not what I want.
62 ;;     - Try code.google.com/p/ejumplist/source/browse/trunk/jumplist.el
63 ;;
64 ;; - on my PC (I run Ubuntu), if you start plain Vim then press CTRL-O
65 ;;   many times, it starts opening recently opened files.  Is that
66 ;;   useful?  Should vimpulse have persistent jump table functionality
67 ;;   like that, and if so, should it use recentf or vim's .viminfo
68 ;;   file or some tag functionality in emacs?  How will it interact
69 ;;   with the fact that in emacs it's not traditional to suddenly
70 ;;   close files without warning?
71 ;;
72 ;; - make sentence movement work like in Vim.  I wonder if this can be
73 ;;   done by setting viper options.
74 ;;     - In Vim, according to :help sentence, end of sentence is:
75 ;;         - '.', '?', or '!'
76 ;;         - then (optionally) one or more '"', ''', ')', and ']'
77 ;;           characters
78 ;;         - then a newline, space, or tab.
79 ;;         - A paragraph or section boundary is also a sentence
80 ;;           boundary, but I bet viper handles that, and if it doesn't,
81 ;;           it should.
82 ;;             - A paragraph begins after each truly empty line (no
83 ;;               whitespace chars on it) or after certain col-1 nroff
84 ;;               macros.  A sentence begins after a form feed (^L), or
85 ;;               certain nroff macros, in column 1.
86 ;;             - The characters '{' and '}' sometimes affect paragraph
87 ;;               definitions.  See :help paragraph.
88 ;;     - In Viper, on the other hand, I bet sentences are like in vi,
89 ;;       where Tabs aren't whitespace, and you need at least two spaces
90 ;;       after the punctuation mark.
91 ;;
92 ;; - purge the code of all cl.el dependencies.
93 ;;
94 ;; - try to get vimpulse included with upstream viper; also, ideally,
95 ;;   if you pressed "v" in viper, viper would offer to load vimpulse.
96 ;;   (likely to happen?  Consider that Michael Kifer, the viper
97 ;;   maintainer, told me he doesn't need vim keys.  Then again, maybe
98 ;;   I could convince him that it's worth it to ship vim keys, for
99 ;;   other people's benefit.)
100 ;;
101 ;; - email ridip <rdp@inthefaith.net> and ask him for his vimpulse
102 ;;   contribs and his dvorak stuff
103 ;;
104 ;; - email to Tromey for upload into ELPA?  we'd have to redo this
105 ;;   when a new major version comes out.  Or maybe we should just
106 ;;   contribute some auto-ELPA-management code.  By the way, should we
107 ;;   move vimpulse into CVS somewhere?
108 ;;
109 ;; - maybe merge all feature requests that anyone has ever sent into a
110 ;;   "Feature requests" section here
111
112 ;;; Development plans:
113
114 ;; The design plan for Vimpulse is for it to only emulate features
115 ;; that are in Vim.  Unfortunately, other new features do not belong
116 ;; in Vimpulse unless you can get the Vim people to implement those
117 ;; features too.
118
119 ;;; Undecided development questions:
120
121 ;; - In vimpulse, like in real vim, C-r only does redo in command
122 ;;   mode; in insert mode it does something else.  (In vimpulse that
123 ;;   "something else" is reverse i-search.)  Should it do reverse
124 ;;   i-search in insert mode too?
125 ;;
126 ;; - When you press "v" for visual mode, Vimpulse modifies the mode
127 ;;   section of the modeline, so it reads e.g. "(Emacs-Lisp visual)".
128 ;;   Shouldn't it do something to the <V> indicator instead?
129 ;;
130 ;; - In Vim, when a line starts with a "// " or ";; " comment and I
131 ;;   press enter, Vim extends the comment onto the next line.  What
132 ;;   Vim function is it that does this?  Is the function enabled in
133 ;;   plain vanilla Vim 7 as shipped by vim.org?  (Check by seeing how
134 ;;   it works on Vim for Windows running on either Windows or Wine.)
135 ;;   Is it mostly useful or mostly annoying?  Is it worth implementing
136 ;;   in Emacs considering there are other easy ways to create
137 ;;   comments?
138 ;;
139 ;; - In v / V mode, Vim makes sure there is always at least 1 char /
140 ;;   line selected.  IMO it provides nice feedback as to whether
141 ;;   visual mode is on or not.  Is this worth implementing?  This is
142 ;;   especially important for the block mode because currently it's
143 ;;   impossible to select the last character in a line.
144 ;;       19/06/2009: we only need to fix block mode.
145 ;;
146 ;; - Sometimes when you use C (viper-change-to-eol) or other change
147 ;;   commands, Jason's new viper-exec-change function shows a message
148 ;;   like "Deleted 50 characters" as a side effect.  Is that annoying?
149 ;;     - Update 1 month later:  I hardly notice the message.
150 ;;     - Dear users:  Do you think I should disable the message?
151 ;;
152 ;; - I want to allow buffer-switching without using the C-x key, since
153 ;;   C-x b RET an extremely large amount of times per day is
154 ;;   uncomfortable for my right pinky which presses RET.  There's
155 ;;   already :b which seems to just invoke switch-to-buffer.  Is this
156 ;;   right?  Is it bad if I make vimpulse emulate set autowrite=on
157 ;;   then write new multi-buffer code?  What should the code's user
158 ;;   interface be like?  I really should switch back to Vim for a day,
159 ;;   learn more about how it deals with multiple buffers at once (and
160 ;;   maybe also with tab pages) and emulate whatever of Vim's is most
161 ;;   convenient.  What do you think of all the above?\
162 ;;     - update: IIRC :set hidden lets you switch buffers w/o saving
163 ;;     - update from Sebastien Rocca Serra: :set wildmenu plus
164 ;;       tab-completion makes :b very pleasant to use when you have
165 ;;       50+ buffers open.  Wildmenu is almost like iswitchb or ido.
166 ;;     - I wonder how well that stuff works with just a few buffers open.
167 ;;
168 ;; - simulate Vim's set virtualedit=onemore option to make C-x C-e
169 ;;   possible w/o first advancing to next line?
170 ;;
171 ;; - Would it be bad to edit users' .viminfo files without asking
172 ;;   permission, or should some variable have to be customized on to do
173 ;;   such a thing?
174 ;;
175 ;; - should gj and gk do longlines-style movement like in Vim?  I
176 ;;   really must resolve my Windows vs. Unix line-length hangups by
177 ;;   Googling or asking before I even think about this.
178 ;;
179 ;; - is there any need to implement Vim's new
180 ;;   [count]dk-can-go-past-top-of-file-without-error functionality (to
181 ;;   me, no need) or any related functionality?
182 ;;
183 ;; - What to do about xemacs?  It doesn't ship with woman.  I wonder
184 ;;   if woman is in some xemacs package?