1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 02:20:03 +08:00
SpaceVim/bundle/calendar.vim/doc/calendar.txt

1094 lines
37 KiB
Plaintext
Raw Normal View History

*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)
<A special buffer plugin creates a special buffer and provides a characteristic
features. For example, file manipulations or interfaces to Twitter. This
|calendar| plugin is one of them.
Now, I'd like to define a new group: Vim application, a subset of special
buffer plugins. A Vim application should:
- be a special buffer plugin >
(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)
<The |calendar| plugin is the first Vim application. So now, it's time to put
up a slogan for the new age of Vim.
*calendar-slogan-vaap*
Vim as an application platform ~
------------------------------------------------------------------------------
COMMANDS *calendar-commands*
:Calendar [{options}] [day month year]
*:Calendar*
Opens a new buffer and views a calendar.
The order of day, month and year varies according to
|calendar-options-date_endian|. For example, the argument will
be judged as [year month day] in Japan (|v:lang| is ja_JP):
:Calendar 2000 year: 2000, month: 1, day: 1
:Calendar 8 year: this year, month: 8, day: 1
:Calendar 8 5 year: this year, month: 8, day: 5
:Calendar 2000 8 5 year: 2000, month: 8, day: 5
In order to avoid ambiguity, you can use >
: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
|<Plug>(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.
<Plug>(calendar) *<Plug>(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.
<Plug>(calendar_left) *<Plug>(calendar_left)*
<Plug>(calendar_right) *<Plug>(calendar_right)*
<Plug>(calendar_down) *<Plug>(calendar_down)*
<Plug>(calendar_up) *<Plug>(calendar_up)*
<Plug>(calendar_prev) *<Plug>(calendar_prev)*
<Plug>(calendar_next) *<Plug>(calendar_next)*
<Plug>(calendar_move_down) *<Plug>(calendar_move_down)*
<Plug>(calendar_move_up) *<Plug>(calendar_move_up)*
<Plug>(calendar_move_event) *<Plug>(calendar_move_event)*
<Plug>(calendar_down_big) *<Plug>(calendar_down_big)*
<Plug>(calendar_up_big) *<Plug>(calendar_up_big)*
<Plug>(calendar_down_large) *<Plug>(calendar_down_large)*
<Plug>(calendar_up_large) *<Plug>(calendar_up_large)*
<Plug>(calendar_line_head) *<Plug>(calendar_line_head)*
<Plug>(calendar_line_middle) *<Plug>(calendar_line_middle)*
<Plug>(calendar_line_last) *<Plug>(calendar_line_last)*
<Plug>(calendar_bar) *<Plug>(calendar_bar)*
<Plug>(calendar_first_line) *<Plug>(calendar_first_line)*
<Plug>(calendar_last_line) *<Plug>(calendar_last_line)*
<Plug>(calendar_first_line_head) *<Plug>(calendar_first_line_head)*
<Plug>(calendar_last_line_last) *<Plug>(calendar_last_line_last)*
Mappings for scrolling
<Plug>(calendar_scroll_down) *<Plug>(calendar_scroll_down)*
<Plug>(calendar_scroll_up) *<Plug>(calendar_scroll_up)*
<Plug>(calendar_scroll_top_head) *<Plug>(calendar_scroll_top_head)*
<Plug>(calendar_scroll_top) *<Plug>(calendar_scroll_top)*
<Plug>(calendar_scroll_center_head) *<Plug>(calendar_scroll_center_head)*
<Plug>(calendar_scroll_center) *<Plug>(calendar_scroll_center)*
<Plug>(calendar_scroll_bottom_head) *<Plug>(calendar_scroll_bottom_head)*
<Plug>(calendar_scroll_bottom) *<Plug>(calendar_scroll_bottom)*
Utility
<Plug>(calendar_add) *<Plug>(calendar_add)*
<Plug>(calendar_subtract) *<Plug>(calendar_subtract)*
<Plug>(calendar_status) *<Plug>(calendar_status)*
<Plug>(calendar_plus) *<Plug>(calendar_plus)*
<Plug>(calendar_minus) *<Plug>(calendar_minus)*
<Plug>(calendar_task) *<Plug>(calendar_task)*
<Plug>(calendar_event) *<Plug>(calendar_event)*
<Plug>(calendar_close_task) *<Plug>(calendar_close_task)*
<Plug>(calendar_close_event) *<Plug>(calendar_close_event)*
<Plug>(calendar_delete) *<Plug>(calendar_delete)*
<Plug>(calendar_delete_line) *<Plug>(calendar_delete_line)*
<Plug>(calendar_yank) *<Plug>(calendar_yank)*
<Plug>(calendar_yank_line) *<Plug>(calendar_yank_line)*
<Plug>(calendar_change) *<Plug>(calendar_change)*
<Plug>(calendar_change_line) *<Plug>(calendar_change_line)*
<Plug>(calendar_undo) *<Plug>(calendar_undo)*
<Plug>(calendar_undo_line) *<Plug>(calendar_undo_line)*
<Plug>(calendar_tab) *<Plug>(calendar_tab)*
<Plug>(calendar_shift_tab) *<Plug>(calendar_shift_tab)*
<Plug>(calendar_next_match) *<Plug>(calendar_next_match)*
<Plug>(calendar_prev_match) *<Plug>(calendar_prev_match)*
<Plug>(calendar_today) *<Plug>(calendar_today)*
<Plug>(calendar_enter) *<Plug>(calendar_enter)*
<Plug>(calendar_view_left) *<Plug>(calendar_view_left)*
<Plug>(calendar_view_right) *<Plug>(calendar_view_right)*
<Plug>(calendar_redraw) *<Plug>(calendar_redraw)*
<Plug>(calendar_clear) *<Plug>(calendar_clear)*
<Plug>(calendar_help) *<Plug>(calendar_help)*
<Plug>(calendar_escape) *<Plug>(calendar_escape)*
<Plug>(calendar_hide) *<Plug>(calendar_hide)*
<Plug>(calendar_exit) *<Plug>(calendar_exit)*
Insert mode
<Plug>(calendar_start_insert) *<Plug>(calendar_start_insert)*
<Plug>(calendar_start_insert_append) *<Plug>(calendar_start_insert_append)*
<Plug>(calendar_start_insert_head) *<Plug>(calendar_start_insert_head)*
<Plug>(calendar_start_insert_last) *<Plug>(calendar_start_insert_last)*
<Plug>(calendar_start_insert_prev_line) *<Plug>(calendar_start_insert_prev_line)*
<Plug>(calendar_start_insert_next_line) *<Plug>(calendar_start_insert_next_line)*
<Plug>(calendar_start_insert_quick) *<Plug>(calendar_start_insert_quick)*
Visual mode
<Plug>(calendar_visual) *<Plug>(calendar_visual)*
<Plug>(calendar_visual_line) *<Plug>(calendar_visual_line)*
<Plug>(calendar_visual_block) *<Plug>(calendar_visual_block)*
<Plug>(calendar_exit_visual) *<Plug>(calendar_exit_visual)*
Normal mode default mappings.
{lhs} {rhs}
-------- ---------------------------------------
h |<Plug>(calendar_left)|
l |<Plug>(calendar_right)|
j |<Plug>(calendar_down)|
k |<Plug>(calendar_up)|
<Left> |<Plug>(calendar_left)|
<Right> |<Plug>(calendar_right)|
<Down> |<Plug>(calendar_down)|
<Up> |<Plug>(calendar_up)|
<BS> same as h
<C-h> same as h
gh same as h
gl same as l
gj same as j
gk same as k
g<Left> same as <Left>
g<Right> same as <Right>
g<Down> same as <Down>
g<Up> same as <Up>
<S-Down> same as <Down>
<S-Up> same as <Up>
<C-j> |<Plug>(calendar_move_down)|
<C-k> |<Plug>(calendar_move_up)|
<C-S-Down> |<Plug>(calendar_move_down)|
<C-S-Up> |<Plug>(calendar_move_up)|
M |<Plug>(calendar_move_event)|
w |<Plug>(calendar_next)|
W same as w
e same as w
<S-Right> same as w
<C-Right> same as w
b |<Plug>(calendar_prev)|
B same as b
ge same as b
gE same as b
<S-Left> same as b
<C-Left> same as b
<C-n> |<Plug>(calendar_down)|
<C-p> |<Plug>(calendar_up)|
<C-d> |<Plug>(calendar_down_big)|
<C-e> same as <C-d>
<C-u> |<Plug>(calendar_up_big)|
<C-y> same as <C-u>
<C-f> |<Plug>(calendar_down_large)|
<C-b> |<Plug>(calendar_up_large)|
<PageDown> same as <C-f>
<PageUp> same as <C-b>
0 |<Plug>(calendar_line_head)|
^ same as 0
g0 same as 0
<Home> same as 0
g<Home> same as 0
g^ same as ^
gm |<Plug>(calendar_line_middle)|
$ |<Plug>(calendar_line_last)|
g$ same as $
g_ same as $
<End> same as $
g<End> same as $
gg |<Plug>(calendar_first_line)|
<C-Home> same as gg
( |<Plug>(calendar_first_line)|
{ same as (
[[ same as (
[] same as [[
G |<Plug>(calendar_last_line)|
) |<Plug>(calendar_last_line)|
} same as )
]] same as )
][ same as ]]
<C-End> |<Plug>(calendar_last_line_last)|
<Bar> |<Plug>(calendar_bar)|
<C-e> |<Plug>(calendar_scroll_down)|
<C-y> |<Plug>(calendar_scroll_up)|
z<CR> |<Plug>(calendar_scroll_top_head)|
zt |<Plug>(calendar_scroll_top)|
z. |<Plug>(calendar_scroll_center_head)|
zz |<Plug>(calendar_scroll_center)|
z- |<Plug>(calendar_scroll_bottom_head)|
zb |<Plug>(calendar_scroll_bottom)|
d |<Plug>(calendar_delete)|
D |<Plug>(calendar_delete_line)|
y |<Plug>(calendar_yank)|
Y |<Plug>(calendar_yank_line)|
c |<Plug>(calendar_change)|
C |<Plug>(calendar_change_line)|
<Undo> |<Plug>(calendar_undo)|
u |<Plug>(calendar_undo)|
U |<Plug>(calendar_undo_line)|
<TAB> |<Plug>(calendar_tab)|
<S-Tab> |<Plug>(calendar_shift_tab)|
n |<Plug>(calendar_next_match)|
N |<Plug>(calendar_prev_match)|
t |<Plug>(calendar_today)|
<CR> |<Plug>(calendar_enter)|
<C-a> |<Plug>(calendar_add)|
<C-x> |<Plug>(calendar_subtract)|
<C-g> |<Plug>(calendar_status)|
+ |<Plug>(calendar_plus)|
- |<Plug>(calendar_minus)|
T |<Plug>(calendar_task)|
E |<Plug>(calendar_event)|
< |<Plug>(calendar_view_left)|
> |<Plug>(calendar_view_right)|
<Space> |<Plug>(calendar_space)|
<C-l> |<Plug>(calendar_redraw)|
<C-r> |<Plug>(calendar_redraw)|
L |<Plug>(calendar_clear)|
? |<Plug>(calendar_help)|
q |<Plug>(calendar_hide)|
Q |<Plug>(calendar_exit)|
i |<Plug>(calendar_start_insert)|
a |<Plug>(calendar_start_insert_append)|
I |<Plug>(calendar_start_insert_head)|
A |<Plug>(calendar_start_insert_last)|
O |<Plug>(calendar_start_insert_prev_line)|
o |<Plug>(calendar_start_insert_next_line)|
v |<Plug>(calendar_visual)|
V |<Plug>(calendar_visual_line)|
<C-v> |<Plug>(calendar_visual_block)|
gh same as v
gH same as V
g<C-h> same as <C-v>
<ESC> |<Plug>(calendar_escape)|
You can configure the mappings in the calendar buffers.
Example configuration: >
augroup calendar-mappings
autocmd!
" diamond cursor
autocmd FileType calendar nmap <buffer> i <Plug>(calendar_up)
autocmd FileType calendar nmap <buffer> j <Plug>(calendar_left)
autocmd FileType calendar nmap <buffer> k <Plug>(calendar_down)
autocmd FileType calendar nmap <buffer> l <Plug>(calendar_right)
" swap v and V
autocmd FileType calendar nmap <buffer> V <Plug>(calendar_visual)
autocmd FileType calendar nmap <buffer> v <Plug>(calendar_visual_line)
" unmap <C-n>, <C-p> for other plugins
autocmd FileType calendar nunmap <buffer> <C-n>
autocmd FileType calendar nunmap <buffer> <C-p>
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 <buffer> {key}
\ <Plug>(calendar_...)
autocmd FileType calendar nunmap <buffer> {key}
augroup END
<
Example configuration: >
augroup calendar-mappings
autocmd!
" diamond cursor
autocmd FileType calendar nmap <buffer> i <Plug>(calendar_up)
autocmd FileType calendar nmap <buffer> j <Plug>(calendar_left)
autocmd FileType calendar nmap <buffer> k <Plug>(calendar_down)
autocmd FileType calendar nmap <buffer> l <Plug>(calendar_right)
" swap v and V
autocmd FileType calendar nmap <buffer> V <Plug>(calendar_visual)
autocmd FileType calendar nmap <buffer> v <Plug>(calendar_visual_line)
" unmap <C-n>, <C-p> for other plugins
autocmd FileType calendar nunmap <buffer> <C-n>
autocmd FileType calendar nunmap <buffer> <C-p>
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: