*calendar.txt* A calendar application for Vim Version: 0.0 Author: itchyny (https://github.com/itchyny) License: MIT License Repository: https://github.com/itchyny/calendar.vim Last Change: 2020/12/31 01:59:11. CONTENTS *calendar-contents* Introduction |calendar-introduction| Concept |calendar-concept| Vim application |calendar-vim-application| Commands |calendar-commands| Options |calendar-options| View |calendar-view| Key Mappings |calendar-key-mappings| Marks |calendar-marks| Input Format |calendar-input-format| Troubleshooting |calendar-troubleshooting| Changelog |calendar-changelog| ============================================================================== INTRODUCTION *calendar-introduction* The *calendar.vim* is a modern and ultimate *calendar* application for Vim. The mattn's |calendar.vim| plugin was a great plugin. (http://www.vim.org/scripts/script.php?script_id=52) The plugin provides a calendar window within Vim, with a diary feature, both vertical/horizontal view and printing week number. The plugin has, as you guess from the fact that its script id is 52, played an important role to show the potential of Vim script in its early stage. The only problem is that the source codes of the plugin are not so clean and hard to modify. Couldn't be helped. Remember that it was written without using dictionary and list. My |calendar.vim| plugin basically provides what is provided by mattn's plugin: calendar of the nearest months, both horizontal and vertical view, and large-size calendar. Also, this plugin provides many key mappings to move around the calendar. The default key mappings are carefully designed to match the default key mappings of Vim itself. Of course, users can freely configure key mappings in |calendar| buffers. This |calendar| plugin also supports importing events from Google Calendar. Once the user connects this plugin to Google Calendar, you can freely edit, create, and delete events in Vim. The events are automatically synchronized with Google Calendar. Moreover, the Julian calendar is supported in this plugin. Basically in the history of calendars, there are two kinds of calendars: the Julian calendar and the Gregorian calendar. In most countries (for example, Holy Rome Empire, France and Spain) the Julian calendar was replaced with the Gregorian in October of 1582, so the |calendar| adopts this boundary date by default. However, in the British Empire, it was switched in 1752, and in Russia, in 1918. The |calendar| plugin provides a way to configure the date in which the Julian calendar is switched to the Gregorian calendar. The plugin also provides a way to view the Julian calendar in the present day, and vice versa. ------------------------------------------------------------------------------ CONCEPT *Calendar-Concept* This is a calendar which is ... Comfortable > The key mappings are designed to match the default mappings of Vim. < Powerful > The application can be connected to Google Calendar and used in your life. < Elegant > The appearance is carefully designed, dropping any unnecessary information. < Interesting > You can choose the calendar in Julian calendar or in Gregorian calendar. < Useful > To conclude, very useful. < ------------------------------------------------------------------------------ VIM APPLICATION *calendar-vim-application* There are lots of Vim plugins. We can classify them as the following groups. - colorscheme plugins > (e.g. wombat) < - syntax plugins > (e.g. vim-json, syntaxm4.vim) < - edit assistance plugins > (e.g. completion plugins, comment plugins) < - special buffer plugins > (e.g. VimFiler, TweetVim, gmail.vim) < - plugins extending the function of a plugin > (e.g. some unite sources) < - plugins supporting other plugins with some low-layer features > (e.g. vital.vim, vimproc, webapi-vim) (create a special buffer and provides some features inside it) < - use a buffer as a display for the state of the plugin > (do not get information from the buffer, redraw entirely every time) < - provide a rich interface > (for example, window layers composition) < - be coded with loose coupling > (any two files do not have common code) < - be independent to any other plugins > (all the requirements are included) :Calendar -year={num} -month={num} -day={num} < See |calendar-options-year|, |calendar-options-month| and |calendar-options-day| for more information. ------------------------------------------------------------------------------ OPTIONS *calendar-options* You can use the following options to change the location of the |calendar| buffer. *calendar-options-split* -split={horizontal/vertical} Open the calendar buffer in a horizontally/vertically opened buffer. *calendar-options-position* -position={below/tab/here/left/right/topleft/topright} -position=below Open the buffer below. -position=tab Open the buffer in a new tab. -position=here[!] Open the buffer at the same window of the current buffer. If some changes exist in the current buffer, this option is ignored. An '!' is added to discard any changes in the current buffer. -position=left Open the buffer on the left hand side. -position=right Open the buffer on the right hand side. -position=topleft Open the buffer on the left hand side, with full height of Vim. -position=topright Open the buffer on the right hand side, with full height of Vim. You can use the following options to change the size of the |calendar| buffer. *calendar-options-height* -height={num} Open the calendar buffer with the specified height. This option is effective with -split=horizontal. *calendar-options-width* -width={num} Open the calendar buffer with the specified width. This option is effective with -split=vertical. You can explicitly give the date with arguments. *calendar-options-year* -year={num} *calendar-options-month* -month={num} *calendar-options-day* -day={num} Open the calendar with the specified date. The following options change the appearance of the calendar. *calendar-options-locale* *g:calendar_locale* -locale={default/en/ja} let g:calendar_locale = "{default/en/ja}" Specify the locale of the messages in the calendar buffer. The default value is "default", which detects the value of |v:lang|. *calendar-options-first_day* *g:calendar_first_day* -first_day={sunday/monday/tuesday/wednesday/thursday/friday/saturday} let g:calendar_first_day = "{sunday/monday/...}" Specify the first day of the calendars. The default value is based on |v:lang|. "sunday": United States, Canada, Japan, Israel "monday": Other countries *calendar-options-time_zone* *g:calendar_time_zone* -time_zone={[-+]hhmm} let g:calendar_time_zone = "{[-+]hhmm}" Specify the time zone from UTC. The default value is strftime('%z'). *calendar-options-date_endian* *g:calendar_date_endian* -date_endian={little/big/middle} let g:calendar_date_endian = "{little/big/middle}" The format of dates. -date_endian=little : day/month/year -date_endian=big : year/month/day -date_endian=middle : month/day/year The default value is based on |v:lang| big : Japan, China, Korea, Hungary, Lithuania, Mongolia middle : United States little : Other countries *calendar-options-date_separator* *g:calendar_date_separator* -date_separator={ / - . " " } let g:calendar_date_separator={"/" "-" "." " "} The separator of dates. The default value is based on |v:lang|. '.' : Armenia, Austria, Azerbaijan, Belarus, Bulgaria, Croatia, Czech Republic, Estonia, Finland, Georgia, Germany, Hungary, Iceland, Kazakhstan, Kyrgyzstan, Latvia, Mongolia, Norway, Romania, Russia, Slovakia, Switzerland, Turkmenistan, Ukraine '-' : Bangladesh, China, Denmark, France, India, Ireland, Lithuania, Netherlands, Sweden, Taiwan '/' : Other countries *calendar-options-date_month_name* *g:calendar_date_month_name* -date_month_name[!] let g:calendar_date_month_name={0/1} If on, a date string uses month names. In order to disable this option with the argument, add the trailing '!'. The default value is 0. *calendar-options-date_full_month_name* *g:calendar_date_full_month_name* -date_full_month_name[!] let g:calendar_date_full_month_name={0/1} If on, a date string uses the full month names. In order to disable this option with the argument, add the trailing '!'. The default value is 0. *calendar-options-week_number* *g:calendar_week_number* -week_number[!] let g:calendar_week_number={0/1} If on, it shows the week numbers. In order to disable this option with the argument, add the trailing '!'. The default value is 0. *calendar-options-task* *g:calendar_task* -task[!] let g:calendar_task={0/1} If on, the app shows the task list on its startup. You can toggle the task list with the T key, which is mapped to |(calendar_task)|. If you want to disable the visibility of the task list after you set the global variable on, add the trailing '!'. The default value is 0. *calendar-options-event_start_time* *g:calendar_event_start_time* -event_start_time[!] let g:calendar_event_start_time={0/1} If on, it shows the starting time of the events in the month/days views. In order to disable this option from the argument, add the trailing '!'. The default value is 1. *calendar-options-event_start_time_minwidth* *g:calendar_event_start_time_minwidth* -event_start_time_minwidth=[num] let g:calendar_event_start_time_minwidth=[num] The minimum width for showing the starting time of the events. If the width of the each day is larger than or equals to this value, it shows the starting time of the events. The default value is 16. *calendar-options-clock_12hour* *g:calendar_clock_12hour* -clock_12hour[!] let g:calendar_clock_12hour={0/1} If on, times are displayed in 12-hour clock style. In order to disable this option with the argument, add the trailing '!'. The default value is 0. *calendar-options-frame* *g:calendar_frame* -frame={default/unicode/space/unicode_bold/unicode_round/unicode_double} let g:calendar_frame = "{default/unicode/...}" The format of frames. The unicode-prefix values are available when |'enc'| is 'utf-8' and |'fenc'| is 'utf-8'. The default value is: "unicode": If |'enc'| is 'utf-8' and |'fenc'| is 'utf-8' "default": In other cases *calendar-options-task_width* *g:calendar_task_width* -task_width={number} let g:calendar_task_width = {number} The width of the task list window. The default value is 1/6 of the window width. *calendar-options-message_prefix* *g:calendar_message_prefix* -message_prefix="{string}" let g:calendar_message_prefix = "{string}" The prefix of the messages. The default value is: "[calendar] ". This application has some different views. You can switch views with |<| and |>| keys. You can change the initial view. *calendar-options-view* *g:calendar_view* -view={year/month/week/days/day/clock/event/agenda} let g:calendar_view = "{year/month/week/days/day/clock/event/agenda}" Specify the view of the calendar on starting the buffer. The default value is "month". *g:calendar_views* let g:calendar_views = ['year', 'month', ... ] Specify the views in an array. The default value is: > ['year', 'month', 'week', 'day_4', 'day', 'clock'] < The available views are: > 'year', 'month', 'week', 'weekday', 'day_7', 'day_6', 'day_5', 'day_4', 'day_3', 'day_2', 'day_1', 'day', 'clock', 'event', 'agenda' < *calendar-options-cyclic_view* *g:calendar_cyclic_view* -cyclic_view[!] let g:calendar_cyclic_view = {0/1} If this value is 1 or the argument is given, the keys |<| and |>| do not stop at the leftmost/rightmost views, but change the view cyclically. The default value is 0. In order to connect this application to Google, you should use the following options. *calendar-options-google_calendar* *g:calendar_google_calendar* -google_calendar[!] let g:calendar_google_calendar = {0/1} If the value is 1 or the argument is given, this application will download the calendars from Google Calendar, with your permission. In order to disable this option with the argument, add the trailing '!'. The default value is 0. *calendar-options-google_task* *g:calendar_google_task* -google_task[!] let g:calendar_google_task = {0/1} If the value is 1 or the argument is given, this application will download the tasks from Google Task, with your permission. In order to disable this option with the argument, add the trailing '!'. The default value is 0. Other miscellaneous options. *calendar-options-calendar* *g:calendar_calendar* -calendar={default/gregorian/julian} {austria/austriastyria/british/bulgaria/canada} {estonia/france/germany/germanyprussia/greece} {holland/hungary/italy/japan/poland/portugal} {russia/spain/turkey/us} let g:calendar_calendar = "{default/gregorian/julian/...}" The date switching to Gregorian calendar varies. The default value is "default", the switching date is 15/10/1582. Calendar Switching date (day month year) default 15 10 1582 italy 15 10 1582 poland 15 10 1582 portugal 15 10 1582 spain 15 10 1582 france 20 12 1582 holland 1 1 1583 germany 11 1 1583 austria 16 10 1583 austriastyria 25 12 1583 hungary 1 11 1587 germanyprussia 2 9 1610 british 14 9 1752 canada 14 9 1752 us 14 9 1752 japan 1 1 1873 bulgaria 14 4 1916 estonia 14 2 1918 russia 14 2 1918 greece 1 3 1923 turkey 1 1 1927 *calendar-options-calendar_candidates* *g:calendar_calendar_candidates* -calendar_candidates=pattern1,pattern2,pattern3 let g:calendar_calendar_candidates = ["pattern1", "pattern2", "pattern3"] Specify the calendar candidates on inserting and moving a calendar event. Note that the values are matched against the summary of the calendars. *calendar-options-updatetime* *g:calendar_updatetime* -updatetime=[num] let g:calendar_updatetime = [num] Specify the updatetime (in msec) in the calendar buffer. This value is used for asynchronous web queries and the clock view. The default value is 200. *calendar-options-skip_event_delete_confirm* *g:calendar_skip_event_delete_confirm* -skip_event_delete_confirm[!] let g:calendar_skip_event_delete_confirm = {0/1} If the value is 1, the application skips confirmation on deleting an event. The default value is 0. *calendar-options-skip_task_delete_confirm* *g:calendar_skip_task_delete_confirm* -skip_task_delete_confirm[!] let g:calendar_skip_task_delete_confirm = {0/1} If the value is 1, the application skips confirmation on deleting a task. The default value is 0. *calendar-options-skip_task_clear_completed_confirm* *g:calendar_skip_task_clear_completed_confirm* -skip_task_clear_completed_confirm[!] let g:calendar_skip_task_clear_completed_confirm = {0/1} If the value is 1, the application skips confirmation on completing a task. The default value is 0. *calendar-options-yank_deleting* *g:calendar_yank_deleting* -yank_deleting[!] let g:calendar_yank_deleting = {0/1} If the value is 1 or the argument is given, the application yanks the text when you delete an event or a task. The default value is 1. *calendar-options-task_delete* *g:calendar_task_delete* -task_delete[!] let g:calendar_task_delete = {0/1} If the value is 1 or the argument is given, the application deletes the selected task directly without completing. The default value is 0. *calendar-options-cache_directory* *g:calendar_cache_directory* -cache_directory=[dir] let g:calendar_cache_directory = [dir] Specify the cache directory for this plugin. The default value is ~/.cache/calendar.vim/. *calendar-options-debug* *g:calendar_debug* -debug[!] let g:calendar_debug = {0/1} If the value is 1 or the argument is given, the application runs in debug mode. In debug mode: 1. It does not delete all the downloaded files. The default value is 0. ------------------------------------------------------------------------------ VIEW *calendar-view* This application has some different views. You can switch views with |>| and |<| keys. Refer to |g:calendar_views| for the default views. 1. Year view *calendar-view-year* This view shows the months. If the window is not wide enough to view all the months in the year, it shows the nearest 3 or 5 months. The name of the year view is 'year'. 2. Month view *calendar-view-month* This view shows one month. This is the initial view on default. The name of the month view is 'month'. 3. Week view *calendar-view-week* This view shows 7 days. The name of the week view is 'week'. 4. Days view *calendar-view-days* This view shows 4 days on default. The available days views are: 'day_7', 'day_6', 'day_5', 'day_4', 'day_3', 'day_2', 'day_1' and 'weekday'. 5. Day view *calendar-view-day* This view shows 1 day. The name of the day view is 'day'. 6. Clock view *calendar-view-clock* This view shows a digital clock. The name of the clock view is 'clock'. 7. Event view *calendar-view-event* This view shows a event list. There are two available event views: 'event' and 'agenda'. ------------------------------------------------------------------------------ KEY MAPPINGS *calendar-key-mappings* This application provides a global mapping. (calendar) *(calendar)* Open a calendar buffer. This mapping calls the |:Calendar| command with no argument. In the calendar buffer, a lot of mappings are provided. This application has many views. Thus pressing j triggers various actions based on the active window. For example, go to 7 days after in the month view, go to the below month in the year view, 1 hour after in the week and day views, and the next task in the task window. So the following mappings change its behavior conformably in each views. Normal mode key mappings. Mappings for moving around. (calendar_left) *(calendar_left)* (calendar_right) *(calendar_right)* (calendar_down) *(calendar_down)* (calendar_up) *(calendar_up)* (calendar_prev) *(calendar_prev)* (calendar_next) *(calendar_next)* (calendar_move_down) *(calendar_move_down)* (calendar_move_up) *(calendar_move_up)* (calendar_move_event) *(calendar_move_event)* (calendar_down_big) *(calendar_down_big)* (calendar_up_big) *(calendar_up_big)* (calendar_down_large) *(calendar_down_large)* (calendar_up_large) *(calendar_up_large)* (calendar_line_head) *(calendar_line_head)* (calendar_line_middle) *(calendar_line_middle)* (calendar_line_last) *(calendar_line_last)* (calendar_bar) *(calendar_bar)* (calendar_first_line) *(calendar_first_line)* (calendar_last_line) *(calendar_last_line)* (calendar_first_line_head) *(calendar_first_line_head)* (calendar_last_line_last) *(calendar_last_line_last)* Mappings for scrolling (calendar_scroll_down) *(calendar_scroll_down)* (calendar_scroll_up) *(calendar_scroll_up)* (calendar_scroll_top_head) *(calendar_scroll_top_head)* (calendar_scroll_top) *(calendar_scroll_top)* (calendar_scroll_center_head) *(calendar_scroll_center_head)* (calendar_scroll_center) *(calendar_scroll_center)* (calendar_scroll_bottom_head) *(calendar_scroll_bottom_head)* (calendar_scroll_bottom) *(calendar_scroll_bottom)* Utility (calendar_add) *(calendar_add)* (calendar_subtract) *(calendar_subtract)* (calendar_status) *(calendar_status)* (calendar_plus) *(calendar_plus)* (calendar_minus) *(calendar_minus)* (calendar_task) *(calendar_task)* (calendar_event) *(calendar_event)* (calendar_close_task) *(calendar_close_task)* (calendar_close_event) *(calendar_close_event)* (calendar_delete) *(calendar_delete)* (calendar_delete_line) *(calendar_delete_line)* (calendar_yank) *(calendar_yank)* (calendar_yank_line) *(calendar_yank_line)* (calendar_change) *(calendar_change)* (calendar_change_line) *(calendar_change_line)* (calendar_undo) *(calendar_undo)* (calendar_undo_line) *(calendar_undo_line)* (calendar_tab) *(calendar_tab)* (calendar_shift_tab) *(calendar_shift_tab)* (calendar_next_match) *(calendar_next_match)* (calendar_prev_match) *(calendar_prev_match)* (calendar_today) *(calendar_today)* (calendar_enter) *(calendar_enter)* (calendar_view_left) *(calendar_view_left)* (calendar_view_right) *(calendar_view_right)* (calendar_redraw) *(calendar_redraw)* (calendar_clear) *(calendar_clear)* (calendar_help) *(calendar_help)* (calendar_escape) *(calendar_escape)* (calendar_hide) *(calendar_hide)* (calendar_exit) *(calendar_exit)* Insert mode (calendar_start_insert) *(calendar_start_insert)* (calendar_start_insert_append) *(calendar_start_insert_append)* (calendar_start_insert_head) *(calendar_start_insert_head)* (calendar_start_insert_last) *(calendar_start_insert_last)* (calendar_start_insert_prev_line) *(calendar_start_insert_prev_line)* (calendar_start_insert_next_line) *(calendar_start_insert_next_line)* (calendar_start_insert_quick) *(calendar_start_insert_quick)* Visual mode (calendar_visual) *(calendar_visual)* (calendar_visual_line) *(calendar_visual_line)* (calendar_visual_block) *(calendar_visual_block)* (calendar_exit_visual) *(calendar_exit_visual)* Normal mode default mappings. {lhs} {rhs} -------- --------------------------------------- h |(calendar_left)| l |(calendar_right)| j |(calendar_down)| k |(calendar_up)| |(calendar_left)| |(calendar_right)| |(calendar_down)| |(calendar_up)| same as h same as h gh same as h gl same as l gj same as j gk same as k g same as g same as g same as g same as same as same as |(calendar_move_down)| |(calendar_move_up)| |(calendar_move_down)| |(calendar_move_up)| M |(calendar_move_event)| w |(calendar_next)| W same as w e same as w same as w same as w b |(calendar_prev)| B same as b ge same as b gE same as b same as b same as b |(calendar_down)| |(calendar_up)| |(calendar_down_big)| same as |(calendar_up_big)| same as |(calendar_down_large)| |(calendar_up_large)| same as same as 0 |(calendar_line_head)| ^ same as 0 g0 same as 0 same as 0 g same as 0 g^ same as ^ gm |(calendar_line_middle)| $ |(calendar_line_last)| g$ same as $ g_ same as $ same as $ g same as $ gg |(calendar_first_line)| same as gg ( |(calendar_first_line)| { same as ( [[ same as ( [] same as [[ G |(calendar_last_line)| ) |(calendar_last_line)| } same as ) ]] same as ) ][ same as ]] |(calendar_last_line_last)| |(calendar_bar)| |(calendar_scroll_down)| |(calendar_scroll_up)| z |(calendar_scroll_top_head)| zt |(calendar_scroll_top)| z. |(calendar_scroll_center_head)| zz |(calendar_scroll_center)| z- |(calendar_scroll_bottom_head)| zb |(calendar_scroll_bottom)| d |(calendar_delete)| D |(calendar_delete_line)| y |(calendar_yank)| Y |(calendar_yank_line)| c |(calendar_change)| C |(calendar_change_line)| |(calendar_undo)| u |(calendar_undo)| U |(calendar_undo_line)| |(calendar_tab)| |(calendar_shift_tab)| n |(calendar_next_match)| N |(calendar_prev_match)| t |(calendar_today)| |(calendar_enter)| |(calendar_add)| |(calendar_subtract)| |(calendar_status)| + |(calendar_plus)| - |(calendar_minus)| T |(calendar_task)| E |(calendar_event)| < |(calendar_view_left)| > |(calendar_view_right)| |(calendar_space)| |(calendar_redraw)| |(calendar_redraw)| L |(calendar_clear)| ? |(calendar_help)| q |(calendar_hide)| Q |(calendar_exit)| i |(calendar_start_insert)| a |(calendar_start_insert_append)| I |(calendar_start_insert_head)| A |(calendar_start_insert_last)| O |(calendar_start_insert_prev_line)| o |(calendar_start_insert_next_line)| v |(calendar_visual)| V |(calendar_visual_line)| |(calendar_visual_block)| gh same as v gH same as V g same as |(calendar_escape)| You can configure the mappings in the calendar buffers. Example configuration: > augroup calendar-mappings autocmd! " diamond cursor autocmd FileType calendar nmap i (calendar_up) autocmd FileType calendar nmap j (calendar_left) autocmd FileType calendar nmap k (calendar_down) autocmd FileType calendar nmap l (calendar_right) " swap v and V autocmd FileType calendar nmap V (calendar_visual) autocmd FileType calendar nmap v (calendar_visual_line) " unmap , for other plugins autocmd FileType calendar nunmap autocmd FileType calendar nunmap augroup END < ------------------------------------------------------------------------------ MARKS *calendar-marks* In the |calendar| buffer, you can use |mark|s. m{a-z} Set mark {a-z} at the selected day and time. :ma[rk] {a-z} Set mark {a-z} at the selected day and time. :k{a-z} Same as :mark. '{a-z} `{a-z} Jump to the mark {a-z}. g'{a-z} g`{a-z} Jump to the mark {a-z}. '' `` Jump to the latest mark. :marks List all the marks. :delm[arks] {mark} Delete the specified mark. :delm[arks]! Delete all the marks. ------------------------------------------------------------------------------ INPUT FORMAT *calendar-input-format* This application has some special format for user's input of events and tasks. Calendar: Day event: EVENT: [event-title] Few hours event: EVENT: HH:MM - HH:MM [event-title] EVENT: HH:MM:ss - HH:MM:ss [event-title] Example: EVENT: 12:00 - 14:00 [event-title] EVENT: 12:00:30 - 14:00:20 [event-title] Few days event: EVENT: mm/dd [event-title] (all day event) EVENT: mm/dd - mm/dd [event-title] EVENT: yyyy/mm/dd - yyyy/mm/dd [event-title] (big endian) EVENT: mm/dd/yyyy - mm/dd/yyyy [event-title] (middle endian) EVENT: dd/mm/yyyy - dd/mm/yyyy [event-title] (little endian) EVENT: yyyy-mm-dd - yyyy-mm-dd [event-title] (big endian, "-" separator) Example: EVENT: 10/23 [event-title] (all day event) EVENT: 10/23 - 10/25 [event-title] EVENT: 2014/10/23 - 2014/10/25 [event-title] (big endian) EVENT: 10/23/2014 - 10/25/2014 [event-title] (middle endian) EVENT: 23/10/2014 - 25/10/2014 [event-title] (little endian) EVENT: 2014-10-23 - 2014-10-25 [event-title] (big endian, "-" separator) Days and hours event: EVENT: mm/dd HH:MM - mm/dd HH:MM [event-title] EVENT: yyyy/mm/dd HH:MM - yyyy/mm/dd HH:MM [event-title] EVENT: dd/mm/yyyy HH:MM - dd/mm/yyyy HH:MM [event-title] (little endian) EVENT: dd-mm-yyyy HH:MM - dd-mm-yyyy HH:MM [event-title] (little endian, "-" separator) Example: EVENT: 10/23 19:00 - 10/25 21:00 [event-title] EVENT: 2014/10/23 19:00 - 2014/10/25 21:00 [event-title] EVENT: 23-10-2014 10:00 - 25-10-2014 21:00 [event-title] (little endian, "-" separator) Task: Simple task: TASK: [task-title] Task with note: TASK: [task-title] note: [task-note] Task with due date: TASK: mm/dd [task-title] TASK: mm-dd [task-title] TASK: yyyy/mm/dd [task-title] TASK: yyyy-mm-dd [task-title] Example: TASK: 10/23 [task-title] TASK: 10-23 [task-title] TASK: 2014/10/23 [task-title] TASK: 2014-10-23 [task-title] Task with due date and note: TASK: yyyy/mm/dd [task-title] note: [task-note] TASK: yyyy-mm-dd [task-title] note: [task-note] Example: TASK: 2014/10/23 [task-title] note: [task-note] TASK: 2014-10-23 [task-title] note: [task-note] ------------------------------------------------------------------------------ TROUBLESHOOTING *calendar-troubleshooting* Problem 1: |calendar-problem-1| How to install this application. Problem 2: |calendar-problem-2| How to update this application. Problem 3: |calendar-problem-3| How to uninstall this application. Problem 4: |calendar-problem-4| How to change key-mapping settings for calendar buffers. Problem 5: |calendar-problem-5| The frame collapses (on Ubuntu). Problem 6: |calendar-problem-6| The clock is invisible / The calendar is not colorful. Problem 7: |calendar-problem-7| How to change the cache directory. Problem 8: |calendar-problem-8| The clock stops to update after the cursor gets out of the window. Problem 9: |calendar-problem-9| How to connect to Google Calendar / Google Task. How to disconnect my Google account. Problem 10: |calendar-problem-10| Authorization to Google fails again and again. Problem 11: |calendar-problem-11| Which should we use, arguments or global variables. Problem 12: |calendar-problem-12| Found a bug of this application. Got many errors while using this application. Vim hangs up while using this application. Need a new mapping. Want this application to be more configurable. This troubleshooting is not helpful. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Problem 1: *calendar-problem-1* How to install this application. If you are to install this application manually: 1. Put all the files under $VIM. If you are using |vim-pathogen|, install this application with the following command. > git clone https://github.com/itchyny/calendar.vim \ ~/.vim/bundle/calendar.vim < If you are to install this application using |Vundle|: 1. Add the following configuration to your vimrc. > Plugin 'itchyny/calendar.vim' < 2. Install with |:PluginInstall|. If you are to install this application using |NeoBundle|: 1. Add the following configuration to your vimrc. > NeoBundle 'itchyny/calendar.vim' < 2. Install with |:NeoBundleInstall|. Problem 2: *calendar-problem-2* How to update this application. If you have installed this application manually: 1. Access https://github.com/itchyny/calendar.vim . 2. Download the latest scripts. 3. Place the scripts as written in Problem 1. If you have installed this application with git clone command: 1. Update the application with git pull. If you have installed this application using Vundle: 1. Execute |:PluginInstall!|. Or try git pull in the directory of this application. If you have installed this application using NeoBundle: 1. Execute |:NeoBundleInstall!|. Or try git pull in the directory of this application. Problem 3: *calendar-problem-3* How to uninstall this application. If you have installed this application manually or git clone commend: 1. Remove all the related files under $VIM. If you have installed this application using Vundle: 1. Remove the :Plugin 'itchyny/calendar.vim' configuration from your vimrc. 2. Update with |:PluginClean|. If you have installed this application using NeoBundle: 1. Remove the :NeoBundle 'itchyny/calendar.vim' configuration from your vimrc. 2. Update with |:NeoBundleClean|. Problem 4: *calendar-problem-4* How to change key-mapping settings for calendar buffers. Add the following configuration to your vimrc. > augroup calendar-mappings autocmd! autocmd FileType calendar nmap {key} \ (calendar_...) autocmd FileType calendar nunmap {key} augroup END < Example configuration: > augroup calendar-mappings autocmd! " diamond cursor autocmd FileType calendar nmap i (calendar_up) autocmd FileType calendar nmap j (calendar_left) autocmd FileType calendar nmap k (calendar_down) autocmd FileType calendar nmap l (calendar_right) " swap v and V autocmd FileType calendar nmap V (calendar_visual) autocmd FileType calendar nmap v (calendar_visual_line) " unmap , for other plugins autocmd FileType calendar nunmap autocmd FileType calendar nunmap augroup END < Problem 5: *calendar-problem-5* The frame collapses (on Ubuntu). Add the following configuration to your vimrc. > let g:calendar_frame = 'default' Problem 6: *calendar-problem-6* The clock is invisible / The calendar is not colorful. Add the following configuration to your *shrc (e.g. zshrc) > export TERM=xterm-256color < and add the following configuration to your vimrc. > if !has('gui_running') set t_Co=256 endif < Problem 7: *calendar-problem-7* How to change the cache directory. For example, add the following configuration to your vimrc. > let g:calendar_cache_directory = expand('~/.vim/cache/calendar.vim/') < See |g:calendar_cache_directory|. Problem 8: *calendar-problem-8* The clock stops to update after the cursor gets out of the window. It is feature. Updating a specific buffer from other window causes many problems. Problem 9: *calendar-problem-9* How to connect to Google Calendar / Google Task. How to disconnect my Google account. Add the following configuration to your vimrc. > let g:calendar_google_calendar = 1 let g:calendar_google_task = 1 < See |g:calendar_google_calendar|, |g:calendar_google_task|. To disconnect, remove the cache directory. On default, the cache directory is ~/.cache/calendar.vim/. So execute the following command. > rm -rf ~/.cache/calendar.vim/google/ < See |g:calendar_cache_directory|. Problem 10: *calendar-problem-10* Authorization to Google fails again and again. Remove the cache directory and reauthorize to Google. > rm -rf ~/.cache/calendar.vim/google/ < See |g:calendar_cache_directory|. Problem 11: *calendar-problem-11* Which should we use, arguments or global variables. Arguments have priority over global variables. For example, if you write > let g:calendar_first_day = 'monday' < the calendar opens with Monday as the first day. However, in this situation, if you open the calendar with > :Calendar -first_day=sunday < Sunday is the first day. So you can write the comfortable settings in your vimrc file and give the arguments in order to overwrite the settings. Problem 12: *calendar-problem-12* Found a bug of this application. Got many errors while using this application. Vim hangs up while using this application. Need a new mapping. Want this application to be more configurable. This troubleshooting is not helpful. Report/Request the issue/feature at https://github.com/itchyny/calendar.vim/issues ============================================================================== CHANGELOG *calendar-changelog* 0.0 2014-01-05, ... - Initial commit and implementation. 2013-06-22, ... - Research and implementation. ============================================================================== vim:tw=78:sw=4:ts=8:ft=help:norl:noet: