vmail 2.5.1 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  # Vmail
2
2
 
3
- Vmail is a Vim interface to Gmail.
3
+ Vmail is a Vim interface to Gmail.
4
4
 
5
5
  [screenshots]
6
6
 
7
7
  Why Vmail? Because some people are 1000 times more productive and happy in [Vim][vim]
8
- than in any web browser or GUI program.
8
+ than in any web browser or GUI program.
9
9
 
10
10
  [vim]:http://www.vim.org/
11
11
 
@@ -21,9 +21,9 @@ To install Ruby 1.9.2, I recommend using the [RVM Version Manager][rvm].
21
21
 
22
22
  [rvm]:http://rvm.beginrescueend.com
23
23
 
24
- The current version of Vmail assumes a Unix environment.
24
+ The current version of Vmail assumes a Unix environment.
25
25
 
26
- Your Gmail account should be [IMAP-enabled][gmailimap].
26
+ Your Gmail account should be [IMAP-enabled][gmailimap].
27
27
 
28
28
  [gmailimap]:http://mail.google.com/support/bin/answer.py?hl=en&answer=77695
29
29
 
@@ -61,7 +61,7 @@ during execution (see below).
61
61
 
62
62
  To run Vmail, create a yaml file called `.vmailrc` and save it either in the
63
63
  current directory (the directory from which you launch Vmail) or in your home
64
- directory.
64
+ directory.
65
65
 
66
66
  The `.vmailrc` file should look something like this. Substitute your own values.
67
67
 
@@ -153,7 +153,7 @@ from either window.
153
153
  You can also use the standard Vim key sequence `C-w C-w`.
154
154
 
155
155
  You can use `<C-j>` or `,j` from either split window to show the next message.
156
- You can use `<C-k>` or `,k` to show the previous message.
156
+ You can use `<C-k>` or `,k` to show the previous message.
157
157
 
158
158
  Vmail loads a certain number messages at a time, starting with the most recent.
159
159
  If there are more messages that Vmail hasn't loaded, you'll see a line at the
@@ -169,7 +169,7 @@ Unread messages are marked with a `+` symbol.
169
169
 
170
170
  To view the raw RFC822 version of a message, type `,R` while viewing the message.
171
171
 
172
- ## Starring, deleting, archiving, marking spam
172
+ ## Starring, deleting, archiving, marking spam, marking read/unread
173
173
 
174
174
  To star a message, put the cursor on it and type `,*`. (Note that the comma
175
175
  before the * is part of the key sequence.) Starring a message copies it to the
@@ -186,10 +186,15 @@ moves it to the `all` mailbox.
186
186
  To mark a message spam, put the cursor on it and type `,!`. This moves the
187
187
  message to to the `spam` mailbox.
188
188
 
189
- You can use range selections in the message list when you star, delete, mark as
190
- spam, or archive. Use `v` to start marking a range of lines (the vertical
191
- position of the cursor doesn't matter). Then type any of the above commands to
192
- perform an action on all the messages you selected.
189
+ To mark a message as unread, put the cursor on it and type `U`.
190
+
191
+ To mark a message as read, put the curson on it and type `I`.
192
+
193
+ You can use visual selections in the message list when you star, delete, mark
194
+ as spam, mark as read, mark as unread or archive. Use `v` to start marking a
195
+ range of lines (the horizontal position of the cursor doesn't matter). Then
196
+ type any of the above commands to perform an action on all the messages you
197
+ selected.
193
198
 
194
199
  To save you keystrokes, Vmail provides alternative key mappings for
195
200
  `,*`, `,#`, and `,!`:
@@ -246,13 +251,13 @@ create it for you before performing a move or copy.
246
251
  To start writing a new a email message, type `,c`. That's a comma followed by
247
252
  the character 'c'.
248
253
 
249
- To reply to a message, type `,r`.
254
+ To reply to a message, type `,r`.
250
255
 
251
- To reply-all to a message, type `,a`.
256
+ To reply-all to a message, type `,a`.
252
257
 
253
258
  To forward a message, type `,f`.
254
259
 
255
- All these commands open a message composition window. At the top, you will see
260
+ All these commands open a message composition window. At the top, you will see
256
261
  mail headers like this:
257
262
 
258
263
  from: Daniel Choi <dhchoi@gmail.com>
@@ -29,7 +29,7 @@ module Vmail
29
29
 
30
30
  vim = ENV['VMAIL_VIM'] || 'vim'
31
31
  ENV['VMAIL_BROWSER'] ||= if RUBY_PLATFORM.downcase.include?('linux')
32
- tools = ['gnome-open', 'kfmclient-exec', 'konqueror']
32
+ tools = ['gnome-open', 'kfmclient-exec', 'xdg-open', 'konqueror']
33
33
  tool = tools.detect { |tool|
34
34
  `which #{tool}`.size > 0
35
35
  }
@@ -1,3 +1,14 @@
1
+ "=================================================
2
+ " File: vmail.vim
3
+ " Description: Vmail is a Vim interface to Gmail.
4
+ " Author: Daniel Choi
5
+ " ================================================
6
+
7
+ if exists("g:loaded_vmail") || &cp
8
+ finish
9
+ endif
10
+ let g:loaded_vmail = 1
11
+
1
12
  if !exists("g:vmail_flagged_color")
2
13
  let g:vmail_flagged_color = "ctermfg=green guifg=green guibg=grey"
3
14
  endif
@@ -32,23 +43,19 @@ let s:show_help_command = s:client_script . "show_help"
32
43
  let s:message_bufname = "current_message.txt"
33
44
 
34
45
  function! VmailStatusLine()
35
- return "%<%f\ " . s:mailbox . " " . s:query . "%r%=%-14.(%l,%c%V%)\ %P"
46
+ return "%<%f\ " . s:mailbox . " " . s:query . "%r%=%-14.(%l,%c%V%)\ %Y %P"
36
47
  endfunction
37
48
 
38
49
  function! s:create_list_window()
39
- "setlocal bufhidden=delete
40
- "setlocal buftype=nofile
41
50
  setlocal nomodifiable
42
51
  setlocal noswapfile
43
- "setlocal nomodifiable
44
52
  setlocal nowrap
45
53
  setlocal nonumber
46
54
  setlocal foldcolumn=0
47
55
  setlocal nospell
48
- " setlocal nobuflisted
49
56
  setlocal textwidth=0
50
57
  setlocal noreadonly
51
- " hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white
58
+ setl ft=mail
52
59
 
53
60
  " let user set this
54
61
  " setlocal cursorline
@@ -57,6 +64,7 @@ function! s:create_list_window()
57
64
  let s:listbufname = bufname('%')
58
65
  setlocal statusline=%!VmailStatusLine()
59
66
  call s:message_list_window_mappings()
67
+ setlocal filetype=vmail
60
68
  autocmd BufNewFile,BufRead *.txt setlocal modifiable
61
69
  endfunction
62
70
 
@@ -245,6 +253,37 @@ function! s:update()
245
253
  endif
246
254
  endfunction
247
255
 
256
+ " function argument a:read: Represents the next state
257
+ " 0 means unread, 1 means read.
258
+ function! s:mark_as_read_unread(read) range
259
+ let uid_set = s:collect_uids(a:firstline, a:lastline)
260
+ let nummsgs = len(uid_set)
261
+ " decide whether to set messages to SEEN or UNSEEN
262
+ let action = (a:read ? " +" : " -") . "FLAGS"
263
+ " construct the imap command
264
+ let command = s:flag_command . shellescape(join(uid_set, ',')) . action . " SEEN"
265
+ " do the real imap flagging
266
+ let res = s:system_with_error_handling(command)
267
+ setlocal modifiable
268
+ let lnum = a:firstline
269
+ while lnum <= a:lastline
270
+ let line = getline(lnum)
271
+ if action ==# " +FLAGS"
272
+ let newline = substitute(line, '^*+', '* ', '')
273
+ let newline = substitute(newline, '^+ ', ' ', '')
274
+ else
275
+ let newline = substitute(line, '^ ', '+', '')
276
+ let newline = substitute(newline, '^\* ', '*+', '')
277
+ endif
278
+ call setline(lnum, newline)
279
+ let lnum += 1
280
+ endwhile
281
+ setlocal nomodifiable
282
+ write
283
+ redraw
284
+ echom nummsgs ." conversation(s) have been marked as unread."
285
+ endfunction
286
+
248
287
  function! s:toggle_star() range
249
288
  let uid_set = s:collect_uids(a:firstline, a:lastline)
250
289
  let nummsgs = len(uid_set)
@@ -751,83 +790,277 @@ endfunc
751
790
  " MAPPINGS
752
791
 
753
792
  func! s:message_window_mappings()
754
- noremap <silent> <buffer> <cr> <C-W>=:call <SID>focus_list_window()<CR>
755
- noremap <silent> <buffer> <Leader>r :call <SID>compose_reply(0)<CR>
756
- noremap <silent> <buffer> <Leader>a :call <SID>compose_reply(1)<CR>
757
- noremap <silent> <buffer> <Leader>R :call <SID>show_raw()<cr>
758
- noremap <silent> <buffer> <Leader>R :call <SID>show_raw()<cr>
759
- noremap <silent> <buffer> <Leader>f :call <SID>compose_forward()<CR><cr>
760
- noremap <silent> <buffer> <c-j> :call <SID>show_next_message()<CR>
761
- noremap <silent> <buffer> <c-k> :call <SID>show_previous_message()<CR>
762
- nmap <silent> <buffer> <leader>j <c-j>
763
- nmap <silent> <buffer> <leader>k <c-k>
764
- noremap <silent> <buffer> <Leader>c :call <SID>compose_message()<CR>
765
- noremap <silent> <buffer> <Leader>h :call <SID>open_html_part()<CR><cr>
766
- noremap <silent> <buffer> <leader>q :call <SID>close_message_window()<cr>
767
-
768
- nnoremap <silent> <buffer> <leader># :close<cr>:call <SID>focus_list_window()<cr>:call <SID>delete_messages("Deleted")<cr>
769
- nnoremap <silent> <buffer> <leader>* :call <SID>focus_list_window()<cr>:call <SID>toggle_star()<cr>
770
- noremap <silent> <buffer> <leader>! :close<cr>:call <SID>focus_list_window()<cr>:call <SID>delete_messages("spam")<CR>
771
- noremap <silent> <buffer> <leader>e :call <SID>focus_list_window()<cr>:call <SID>archive_messages()<CR>
772
- " alt mappings for lazy hands
773
- nmap <silent> <buffer> <leader>8 <leader>*
774
- nmap <silent> <buffer> <leader>3 <leader>#
775
- nmap <silent> <buffer> <leader>1 <leader>!
776
-
777
- nnoremap <silent> <buffer> <Leader>b :call <SID>focus_list_window()<cr>:call <SID>move_to_mailbox(0)<CR>
778
- nnoremap <silent> <buffer> <Leader>B :call <SID>focus_list_window()<cr>:call <SID>move_to_mailbox(1)<CR>
779
-
780
- nnoremap <silent> <buffer> <Leader>u :call <SID>focus_list_window()<cr>:call <SID>update()<CR>
781
- nnoremap <silent> <buffer> u :call <SID>focus_list_window()<cr>:call <SID>update()<CR>
782
-
783
- nnoremap <silent> <buffer> <Leader>m :call <SID>focus_list_window()<cr>:call <SID>mailbox_window()<CR>
784
- nnoremap <silent> <buffer> <Leader>A :call <SID>save_attachments()<cr>
785
- nnoremap <silent> <buffer> <Space> :call <SID>toggle_maximize_window()<cr>
786
- noremap <silent> <buffer> <leader>vp :call <SID>focus_list_window()<cr>:call <SID>append_messages_to_file()<CR>
787
- nnoremap <silent> <buffer> <Leader>s :call <SID>focus_list_window()<cr>:call <SID>search_query()<cr>
793
+ if !hasmapto('<Plug>VmailMessageWindow_FocusListWindow')
794
+ nmap <buffer> <CR> <Plug>VmailMessageWindow_FocusListWindow
795
+ endif
796
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_FocusListWindow <C-W>=:call <SID>focus_list_window()<CR>
797
+
798
+ if !hasmapto('<Plug>VmailMessageWindow_Reply')
799
+ nmap <buffer> <leader>r <Plug>VmailMessageWindow_Reply
800
+ endif
801
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_Reply :call <SID>compose_reply(0)<CR>
802
+
803
+ if !hasmapto('<Plug>VmailMessageWindow_ReplyToAll')
804
+ nmap <buffer> <leader>a <Plug>VmailMessageWindow_ReplyToAll
805
+ endif
806
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ReplyToAll :call <SID>compose_reply(1)<CR>
807
+
808
+ if !hasmapto('<Plug>VmailMessageWindow_ShowRaw')
809
+ nmap <buffer> <leader>R <Plug>VmailMessageWindow_ShowRaw
810
+ endif
811
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ShowRaw :call <SID>show_raw()<CR>
812
+
813
+ if !hasmapto('<Plug>VmailMessageWindow_Forward')
814
+ nmap <buffer> <leader>f <Plug>VmailMessageWindow_Forward
815
+ endif
816
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_Forward :call <SID>compose_forward()<CR>
788
817
 
818
+ if !hasmapto('<Plug>VmailMessageWindow_ShowNext')
819
+ nmap <buffer> <C-j> <Plug>VmailMessageWindow_ShowNext
820
+ nmap <buffer> <leader>j <Plug>VmailMessageWindow_ShowNext
821
+ endif
822
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ShowNext :call <SID>show_next_message()<CR>
823
+
824
+ if !hasmapto('<Plug>VmailMessageWindow_ShowPrev')
825
+ nmap <buffer> <C-k> <Plug>VmailMessageWindow_ShowPrev
826
+ nmap <buffer> <leader>k <Plug>VmailMessageWindow_ShowPrev
827
+ endif
828
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ShowPrev :call <SID>show_previous_message()<CR>
829
+
830
+ if !hasmapto('<Plug>VmailMessageWindow_ComposeMessage')
831
+ nmap <buffer> <leader>c <Plug>VmailMessageWindow_ComposeMessage
832
+ endif
833
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ComposeMessage :call <SID>compose_message()<CR>
834
+
835
+ if !hasmapto('<Plug>VmailMessageWindow_OpenHTML')
836
+ nmap <buffer> <leader>h <Plug>VmailMessageWindow_OpenHTML
837
+ endif
838
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_OpenHTML :call <SID>open_html_part()<CR>
839
+
840
+ if !hasmapto('<Plug>VmailMessageWindow_CloseWindow')
841
+ nmap <buffer> <leader>q <Plug>VmailMessageWindow_CloseWindow
842
+ endif
843
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_CloseWindow :call <SID>close_message_window()<CR>
844
+
845
+ if !hasmapto('<Plug>VmailMessageWindow_DeleteMessage')
846
+ nmap <buffer> <leader># <Plug>VmailMessageWindow_DeleteMessage
847
+ nmap <buffer> <leader>3 <Plug>VmailMessageWindow_DeleteMessage
848
+ endif
849
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_DeleteMessage :close<cr>:call <SID>focus_list_window()<CR>:call <SID>delete_messages("Deleted")<CR>
850
+
851
+ if !hasmapto('<Plug>VmailMessageWindow_ToggleStar')
852
+ nmap <buffer> <leader>* <Plug>VmailMessageWindow_ToggleStar
853
+ nmap <buffer> <leader>8 <Plug>VmailMessageWindow_ToggleStar
854
+ endif
855
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ToggleStar :call <SID>focus_list_window()<cr>:call <SID>toggle_star()<CR>
856
+
857
+ if !hasmapto('<Plug>VmailMessageWindow_MarkAsRead')
858
+ nmap <buffer> I <Plug>VmailMessageWindow_MarkAsRead
859
+ endif
860
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_MarkAsRead :call <SID>focus_list_window()<cr>:call <SID>mark_as_read_unread(1)<CR>
861
+
862
+ if !hasmapto('<Plug>VmailMessageWindow_MarkAsUnread')
863
+ nmap <buffer> U <Plug>VmailMessageWindow_MarkAsUnread
864
+ endif
865
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_MarkAsUnread :call <SID>focus_list_window()<cr>:call <SID>mark_as_read_unread(0)<CR>
866
+
867
+ if !hasmapto('<Plug>VmailMessageWindow_MarkAsSpam')
868
+ nmap <buffer> <leader>! <Plug>VmailMessageWindow_MarkAsSpam
869
+ nmap <buffer> <leader>1 <Plug>VmailMessageWindow_MarkAsSpam
870
+ endif
871
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_MarkAsSpam :close<cr>:call <SID>focus_list_window()<cr>:call <SID>delete_messages("spam")<CR>
872
+
873
+ if !hasmapto('<Plug>VmailMessageWindow_ArchiveMessage')
874
+ nmap <buffer> <leader>e <Plug>VmailMessageWindow_ArchiveMessage
875
+ endif
876
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ArchiveMessage :call <SID>focus_list_window()<cr>:call <SID>archive_messages()<CR>
877
+
878
+ if !hasmapto('<Plug>VmailMessageWindow_MoveToMailbox')
879
+ nmap <buffer> <leader>b <Plug>VmailMessageWindow_MoveToMailbox
880
+ endif
881
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_MoveToMailbox :call <SID>focus_list_window()<cr>:call <SID>move_to_mailbox(0)<CR>
882
+
883
+ if !hasmapto('<Plug>VmailMessageWindow_CopyToMailbox')
884
+ nmap <buffer> <leader>B <Plug>VmailMessageWindow_CopyToMailbox
885
+ endif
886
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_CopyToMailbox :call <SID>focus_list_window()<cr>:call <SID>move_to_mailbox(1)<CR>
887
+
888
+ if !hasmapto('<Plug>VmailMessageWindow_Update')
889
+ nmap <buffer> <leader>u <Plug>VmailMessageWindow_Update
890
+ endif
891
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_Update :call <SID>focus_list_window()<cr>:call <SID>update()<CR>
892
+
893
+ if !hasmapto('<Plug>VmailMessageWindow_SwitchMailBox')
894
+ nmap <buffer> <leader>m <Plug>VmailMessageWindow_SwitchMailBox
895
+ endif
896
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_SwitchMailBox :call <SID>focus_list_window()<cr>:call <SID>mailbox_window()<CR>
897
+
898
+ if !hasmapto('<Plug>VmailMessageWindow_SaveAttachment')
899
+ nmap <buffer> <leader>A <Plug>VmailMessageWindow_SaveAttachment
900
+ endif
901
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_SaveAttachment :call <SID>save_attachments()<CR>
902
+
903
+ if !hasmapto('<Plug>VmailMessageWindow_ToggleWindow')
904
+ nmap <buffer> <Space> <Plug>VmailMessageWindow_ToggleWindow
905
+ endif
906
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_ToggleWindow :call <SID>toggle_maximize_window()<cr>
907
+
908
+ if !hasmapto('<Plug>VmailMessageWindow_AppendMessagesToFile')
909
+ nmap <buffer> <leader>vp <Plug>VmailMessageWindow_AppendMessagesToFile
910
+ endif
911
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_AppendMessagesToFile :call <SID>focus_list_window()<cr>:call <SID>append_messages_to_file()<CR>
912
+
913
+ if !hasmapto('<Plug>VmailMessageWindow_Search')
914
+ nmap <buffer> <leader>s <Plug>VmailMessageWindow_Search
915
+ endif
916
+ nnoremap <buffer> <unique> <script> <Plug>VmailMessageWindow_Search :call <SID>focus_list_window()<cr>:call <SID>search_query()<cr>
789
917
  endfunc
790
918
 
791
919
  func! s:message_list_window_mappings()
792
- noremap <silent> <buffer> <cr> :call <SID>show_message(0)<CR>
793
- noremap <silent> <buffer> <LeftMouse> :call <SID>show_message(0)<CR>
794
- nnoremap <silent> <buffer> l :call <SID>show_message(1)<CR>
795
- noremap <silent> <buffer> <leader>q :qal!<cr>
796
-
797
- noremap <silent> <buffer> <leader>* :call <SID>toggle_star()<CR>
798
- noremap <silent> <buffer> <leader># :call <SID>delete_messages("Deleted")<CR>
799
- noremap <silent> <buffer> <leader>! :call <SID>delete_messages("spam")<CR>
800
- noremap <silent> <buffer> <leader>e :call <SID>archive_messages()<CR>
801
- " alt mappings for lazy hands
802
- noremap <silent> <buffer> <leader>8 :call <SID>toggle_star()<CR>
803
- noremap <silent> <buffer> <leader>3 :call <SID>delete_messages("Deleted")<CR>
804
- noremap <silent> <buffer> <leader>1 :call <SID>delete_messages("spam")<CR>
805
- " nmap <silent> <buffer> <leader>8 <leader>*
806
- " nmap <silent> <buffer> <leader>3 <leader>#
807
- " nmap <silent> <buffer> <leader>1 <leader>!
808
-
809
- "open a link browser (os x)
810
- " autocmd CursorMoved <buffer> :redraw!
811
- noremap <silent> <buffer> <leader>vp :call <SID>append_messages_to_file()<CR>
812
- nnoremap <silent> <buffer> <Leader>u :call <SID>update()<CR>
813
- noremap <silent> <buffer> u :call <SID>update()<CR>
814
- noremap <silent> <buffer> <Leader>s :call <SID>search_query()<CR>
815
- noremap <silent> <buffer> <Leader>m :call <SID>mailbox_window()<CR>
816
- noremap <silent> <buffer> <Leader>b :call <SID>move_to_mailbox(0)<CR>
817
- noremap <silent> <buffer> <Leader>B :call <SID>move_to_mailbox(1)<CR>
818
- noremap <silent> <buffer> <Leader>c :call <SID>compose_message()<CR>
819
- noremap <silent> <buffer> <Leader>r :call <SID>show_message(0)<cr>:call <SID>compose_reply(0)<CR>
820
- noremap <silent> <buffer> <Leader>a :call <SID>show_message(0)<cr>:call <SID>compose_reply(1)<CR>
821
- noremap <silent> <buffer> <Leader>f :call <SID>show_message(0)<cr>:call <SID>compose_forward()<CR><cr>
822
- noremap <silent> <buffer> <c-j> :call <SID>show_next_message_in_list()<cr>
823
- noremap <silent> <buffer> <c-k> :call <SID>show_previous_message_in_list()<cr>
824
- nnoremap <silent> <buffer> <Space> :call <SID>toggle_maximize_window()<cr>
920
+ if !hasmapto('<Plug>VmailOpenMessage')
921
+ nmap <buffer> <CR> <Plug>VmailOpenMessage
922
+ nmap <buffer> <LeftMouse> <Plug>VmailOpenMessage
923
+ endif
924
+ nnoremap <buffer> <unique> <script> <Plug>VmailOpenMessage :call <SID>show_message(0)<CR>
925
+
926
+ if !hasmapto('<Plug>VmailPreviewMessage')
927
+ nmap <buffer> l <Plug>VmailPreviewMessage
928
+ endif
929
+ nnoremap <buffer> <unique> <script> <Plug>VmailPreviewMessage :call <SID>show_message(1)<CR>
930
+
931
+ if !hasmapto('<Plug>VmailExit')
932
+ nmap <buffer> <leader>q <Plug>VmailExit
933
+ endif
934
+ nnoremap <buffer> <unique> <script> <Plug>VmailExit :qall!<CR>
935
+
936
+ if !hasmapto('<Plug>VmailToggleStar')
937
+ nmap <buffer> <leader>* <Plug>VmailToggleStar
938
+ xmap <buffer> <leader>* <Plug>VmailToggleStar
939
+ nmap <buffer> <leader>8 <Plug>VmailToggleStar
940
+ xmap <buffer> <leader>8 <Plug>VmailToggleStar
941
+ endif
942
+ nnoremap <buffer> <unique> <script> <Plug>VmailToggleStar :call <SID>toggle_star()<CR>
943
+ xnoremap <buffer> <unique> <script> <Plug>VmailToggleStar :call <SID>toggle_star()<CR>
944
+
945
+ if !hasmapto('<Plug>VmailMarkAsUnread')
946
+ nmap <buffer> U <Plug>VmailMarkAsUnread
947
+ xmap <buffer> U <Plug>VmailMarkAsUnread
948
+ endif
949
+ nnoremap <buffer> <unique> <script> <Plug>VmailMarkAsUnread :call <SID>mark_as_read_unread(0)<CR>
950
+ xnoremap <buffer> <unique> <script> <Plug>VmailMarkAsUnread :call <SID>mark_as_read_unread(0)<CR>
951
+
952
+ if !hasmapto('<Plug>VmailMarkAsRead')
953
+ nmap <buffer> I <Plug>VmailMarkAsRead
954
+ xmap <buffer> I <Plug>VmailMarkAsRead
955
+ endif
956
+ nnoremap <buffer> <unique> <script> <Plug>VmailMarkAsRead :call <SID>mark_as_read_unread(1)<CR>
957
+ xnoremap <buffer> <unique> <script> <Plug>VmailMarkAsRead :call <SID>mark_as_read_unread(1)<CR>
958
+
959
+ if !hasmapto('<Plug>VmailDelete')
960
+ nmap <buffer> <leader># <Plug>VmailDelete
961
+ xmap <buffer> <leader># <Plug>VmailDelete
962
+ nmap <buffer> <leader>3 <Plug>VmailDelete
963
+ xmap <buffer> <leader>3 <Plug>VmailDelete
964
+ endif
965
+ nnoremap <buffer> <unique> <script> <Plug>VmailDelete :call <SID>delete_messages("Deleted")<CR>
966
+ xnoremap <buffer> <unique> <script> <Plug>VmailDelete :call <SID>delete_messages("Deleted")<CR>
967
+
968
+ if !hasmapto('<Plug>VmailMarkAsSpam')
969
+ nmap <buffer> <leader>! <Plug>VmailMarkAsSpam
970
+ xmap <buffer> <leader>! <Plug>VmailMarkAsSpam
971
+ nmap <buffer> <leader>1 <Plug>VmailMarkAsSpam
972
+ xmap <buffer> <leader>1 <Plug>VmailMarkAsSpam
973
+ endif
974
+ nnoremap <buffer> <unique> <script> <Plug>VmailMarkAsSpam :call <SID>delete_messages("spam")<CR>
975
+ xnoremap <buffer> <unique> <script> <Plug>VmailMarkAsSpam :call <SID>delete_messages("spam")<CR>
976
+
977
+ if !hasmapto('<Plug>VmailArchiveMessage')
978
+ nmap <buffer> <leader>e <Plug>VmailArchiveMessage
979
+ xmap <buffer> <leader>e <Plug>VmailArchiveMessage
980
+ endif
981
+ nnoremap <buffer> <unique> <script> <Plug>VmailArchiveMessage :call <SID>archive_messages()<CR>
982
+ xnoremap <buffer> <unique> <script> <Plug>VmailArchiveMessage :call <SID>archive_messages()<CR>
983
+
984
+ if !hasmapto('<Plug>VmailAppendMessagesToFile')
985
+ nmap <buffer> <leader>vp <Plug>VmailAppendMessagesToFile
986
+ xmap <buffer> <leader>vp <Plug>VmailAppendMessagesToFile
987
+ endif
988
+ nnoremap <buffer> <unique> <script> <Plug>VmailAppendMessagesToFile :call <SID>append_messages_to_file()<CR>
989
+ xnoremap <buffer> <unique> <script> <Plug>VmailAppendMessagesToFile :call <SID>append_messages_to_file()<CR>
990
+
991
+ if !hasmapto('<Plug>VmailUpdate')
992
+ nmap <buffer> u <Plug>VmailUpdate
993
+ endif
994
+ nnoremap <buffer> <unique> <script> <Plug>VmailUpdate :call <SID>update()<CR>
995
+
996
+ if !hasmapto('<Plug>VmailSearch')
997
+ nmap <buffer> <leader>s <Plug>VmailSearch
998
+ endif
999
+ nnoremap <buffer> <unique> <script> <Plug>VmailSearch :call <SID>search_query()<CR>
1000
+
1001
+ if !hasmapto('<Plug>VmailSwitchMailbox')
1002
+ nmap <buffer> <leader>m <Plug>VmailSwitchMailbox
1003
+ endif
1004
+ nnoremap <buffer> <unique> <script> <Plug>VmailSwitchMailbox :call <SID>mailbox_window()<CR>
1005
+
1006
+ if !hasmapto('<Plug>VmailMoveToMailbox')
1007
+ nmap <buffer> <leader>b <Plug>VmailMoveToMailbox
1008
+ xmap <buffer> <leader>b <Plug>VmailMoveToMailbox
1009
+ endif
1010
+ nnoremap <buffer> <unique> <script> <Plug>VmailMoveToMailbox :call <SID>move_to_mailbox(0)<CR>
1011
+ xnoremap <buffer> <unique> <script> <Plug>VmailMoveToMailbox :call <SID>move_to_mailbox(0)<CR>
1012
+
1013
+ if !hasmapto('<Plug>VmailCopyToMailbox')
1014
+ nmap <buffer> <leader>B <Plug>VmailCopyToMailbox
1015
+ xmap <buffer> <leader>B <Plug>VmailCopyToMailbox
1016
+ endif
1017
+ nnoremap <buffer> <unique> <script> <Plug>VmailCopyToMailbox :call <SID>move_to_mailbox(1)<CR>
1018
+ xnoremap <buffer> <unique> <script> <Plug>VmailCopyToMailbox :call <SID>move_to_mailbox(1)<CR>
1019
+
1020
+ if !hasmapto('<Plug>VmailComposeNew')
1021
+ nmap <buffer> <leader>c <Plug>VmailComposeNew
1022
+ endif
1023
+ nnoremap <buffer> <unique> <script> <Plug>VmailComposeNew :call <SID>compose_message()<CR>
1024
+
1025
+ if !hasmapto('<Plug>VmailComposeReply')
1026
+ nmap <buffer> <Leader>r <Plug>VmailComposeReply
1027
+ endif
1028
+ nnoremap <buffer> <unique> <script> <Plug>VmailComposeReply :call <SID>show_message(0)<CR>:call <SID>compose_reply(0)<CR>
1029
+
1030
+ if !hasmapto('<Plug>VmailComposeReplyAll')
1031
+ nmap <buffer> <Leader>a <Plug>VmailComposeReplyAll
1032
+ endif
1033
+ nnoremap <buffer> <unique> <script> <Plug>VmailComposeReplyAll :call <SID>show_message(0)<CR>:call <SID>compose_reply(1)<CR>
1034
+
1035
+ if !hasmapto('<Plug>VmailForward')
1036
+ nmap <buffer> <Leader>f <Plug>VmailForward
1037
+ endif
1038
+ nnoremap <buffer> <unique> <script> <Plug>VmailForward :call <SID>show_message(0)<CR>:call <SID>compose_forward()<CR>
1039
+
1040
+ if !hasmapto('<Plug>VmailShowNextMessage')
1041
+ nmap <buffer> <C-j> <Plug>VmailShowNextMessage
1042
+ endif
1043
+ nnoremap <buffer> <unique> <script> <Plug>VmailShowNextMessage :call <SID>show_next_message_in_list()<CR>
1044
+
1045
+ if !hasmapto('<Plug>VmailShowPrevMessage')
1046
+ nmap <buffer> <C-k> <Plug>VmailShowPrevMessage
1047
+ endif
1048
+ nnoremap <buffer> <unique> <script> <Plug>VmailShowPrevMessage :call <SID>show_previous_message_in_list()<CR>
1049
+
1050
+ if !hasmapto('<Plug>VmailToggleWindow')
1051
+ nmap <buffer> <Space> <Plug>VmailToggleWindow
1052
+ endif
1053
+ nnoremap <buffer> <unique> <script> <Plug>VmailToggleWindow :call <SID>toggle_maximize_window()<cr>
1054
+
825
1055
  autocmd CursorMoved <buffer> :redraw
826
- autocmd BufEnter,BufWinEnter <buffer> :call <SID>set_list_colors()
1056
+ autocmd FileType vmail :call <SID>set_list_colors()
827
1057
  endfunc
828
1058
 
829
1059
  func! s:compose_window_mappings()
830
- noremap <silent> <buffer> <leader>q :call <SID>close_and_focus_list_window()<cr>
1060
+ if !hasmapto('<Plug>VmailComposeWinClose')
1061
+ nmap <buffer> <leader>q <Plug>VmailComposeWinClose
1062
+ endif
1063
+ nnoremap <buffer> <unique> <script> <Plug>VmailComposeWinClose :call <SID>close_and_focus_list_window()<CR>
831
1064
  setlocal ai
832
1065
  command! -bar -nargs=1 -complete=file VMAttach call s:attach_file(<f-args>)
833
1066
  endfunc
@@ -894,8 +1127,6 @@ call s:focus_list_window() " to go list window
894
1127
  " send window width
895
1128
  call s:system_with_error_handling(s:set_window_width_command . winwidth(1))
896
1129
 
897
- "autocmd VimResized <buffer> call s:system_with_error_handling(s:set_window_width_command . winwidth(1))
898
-
899
1130
  autocmd bufreadpost *.txt call <SID>turn_into_compose_window()
900
1131
  normal G
901
1132
  call s:system_with_error_handling(s:select_mailbox_command . shellescape(s:mailbox))
@@ -1,3 +1,3 @@
1
1
  module Vmail
2
- VERSION = '2.5.1'
2
+ VERSION = '2.5.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmail
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-24 00:00:00.000000000Z
12
+ date: 2012-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mail
16
- requirement: &27272100 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 2.2.12
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *27272100
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.2.12
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: highline
27
- requirement: &27271640 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 1.6.1
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *27271640
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.6.1
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: sequel
38
- requirement: &27271180 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 3.24.1
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *27271180
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 3.24.1
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: sqlite3
49
- requirement: &27270720 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,12 @@ dependencies:
54
69
  version: 1.3.3
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *27270720
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.3.3
58
78
  description: Manage your email with Vim
59
79
  email:
60
80
  - dhchoi@gmail.com
@@ -133,8 +153,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
153
  version: '0'
134
154
  requirements: []
135
155
  rubyforge_project: vmail
136
- rubygems_version: 1.8.10
156
+ rubygems_version: 1.8.23
137
157
  signing_key:
138
158
  specification_version: 3
139
159
  summary: A Vim interface to Gmail
140
- test_files: []
160
+ test_files:
161
+ - test/address_quoter_test.rb
162
+ - test/base64_test.rb
163
+ - test/fixtures/euc-kr-header.eml
164
+ - test/fixtures/euc-kr-html.eml
165
+ - test/fixtures/google-affiliate.eml
166
+ - test/fixtures/htmlbody.eml
167
+ - test/fixtures/moleskine-html.eml
168
+ - test/fixtures/reply-template-encoding-test.eml
169
+ - test/fixtures/reply_all.eml
170
+ - test/fixtures/rfc_part.eml
171
+ - test/fixtures/textbody-nocontenttype.eml
172
+ - test/fixtures/with-attachments.eml
173
+ - test/message_formatter_test.rb
174
+ - test/reply_template_test.rb
175
+ - test/test_helper.rb
176
+ - test/time_format_test.rb