X-Git-Url: https://git.cworth.org/git?p=notmuch;a=blobdiff_plain;f=vim%2Fnotmuch.vim;h=8e547d4e50a16202c1a2a8c99d414e6a7f898f08;hp=331e9300842b1ef62f0cc62baacdaf64da7ffe46;hb=0998fa9a09387b622d770fc8c5f780a951b0cf2a;hpb=21cb851a22f41e0b2a7c07dcbcc4f2dec20a0e3d diff --git a/vim/notmuch.vim b/vim/notmuch.vim index 331e9300..8e547d4e 100644 --- a/vim/notmuch.vim +++ b/vim/notmuch.vim @@ -59,6 +59,7 @@ let s:notmuch_datetime_format_default = '%d.%m.%y %H:%M:%S' let s:notmuch_reader_default = 'mutt -f %s' let s:notmuch_sendmail_default = 'sendmail' let s:notmuch_folders_count_threads_default = 0 +let s:notmuch_compose_start_insert_default = 1 function! s:new_file_buffer(type, fname) exec printf('edit %s', a:fname) @@ -132,7 +133,9 @@ function! s:show_reply() let b:compose_done = 0 call s:set_map(g:notmuch_compose_maps) autocmd BufDelete call s:on_compose_delete() - startinsert! + if g:notmuch_compose_start_insert + startinsert! + end endfunction function! s:compose() @@ -140,7 +143,9 @@ function! s:compose() let b:compose_done = 0 call s:set_map(g:notmuch_compose_maps) autocmd BufDelete call s:on_compose_delete() - startinsert! + if g:notmuch_compose_start_insert + startinsert! + end endfunction function! s:show_info() @@ -428,6 +433,10 @@ function! s:set_defaults() endif endif + if !exists('g:notmuch_compose_start_insert') + let g:notmuch_compose_start_insert = s:notmuch_compose_start_insert_default + endif + if !exists('g:notmuch_custom_search_maps') && exists('g:notmuch_rb_custom_search_maps') let g:notmuch_custom_search_maps = g:notmuch_rb_custom_search_maps endif @@ -468,32 +477,28 @@ ruby << EOF $db_name = nil $email = $email_name = $email_address = nil + $exclude_tags = [] $searches = [] $threads = [] $messages = [] - $config = {} $mail_installed = defined?(Mail) - def get_config - group = nil - config = ENV['NOTMUCH_CONFIG'] || '~/.notmuch-config' - File.open(File.expand_path(config)).each do |l| - l.chomp! - case l - when /^\[(.*)\]$/ - group = $1 - when '' - when /^(.*)=(.*)$/ - key = "%s.%s" % [group, $1] - value = $2 - $config[key] = value - end - end + def get_config_item(item) + result = '' + IO.popen(['notmuch', 'config', 'get', item]) { |out| + result = out.read + } + return result.rstrip + end - $db_name = $config['database.path'] - $email_name = $config['user.name'] - $email_address = $config['user.primary_email'] + def get_config + $db_name = get_config_item('database.path') + $email_name = get_config_item('user.name') + $email_address = get_config_item('user.primary_email') + $email_name = get_config_item('user.name') $email = "%s <%s>" % [$email_name, $email_address] + ignore_tags = get_config_item('search.exclude_tags') + $exclude_tags = ignore_tags.split("\n") end def vim_puts(s) @@ -636,7 +641,7 @@ ruby << EOF folders.each do |name, search| q = $curbuf.query(search) $searches << search - count = count_threads ? q.search_threads.count : q.search_messages.count + count = count_threads ? q.count_threads : q.count_messages b << "%9d %-20s (%s)" % [count, name, search] end end @@ -655,7 +660,7 @@ ruby << EOF date = Time.at(e.newest_date).strftime(date_fmt) subject = e.messages.first['subject'] if $mail_installed - subject = Mail::Field.new("Subject: " + subject).to_s + subject = Mail::Field.parse("Subject: " + subject).to_s else subject = subject.force_encoding('utf-8') end @@ -697,6 +702,9 @@ ruby << EOF def query(*args) q = @db.query(*args) @queries << q + $exclude_tags.each { |t| + q.add_tag_exclude(t) + } q end