Properties and column view
<prefix>p Set a property. Names are completed, and values come fromPROP_ALLproperties when available. Before the first headline, the file-level property drawer at the top of the file is set (created after leading comments). <C-c><C-x>P Set a property from onePROPERTY: valueanswer (org-set-property-and-value); a count reuses the last one. <prefix>P Delete a property (and itsPROPERTY+lines). <S-Right/Left> (ctx) On a property line: next / previous allowed value fromPROP_ALL(org-property-next-allowed-value). <C-c><C-c> (ctx) On a property line: menu to set the value, delete it here, delete it from all entries, or compute it withc(org-property-action). Also works in file-level drawers.:Org delete_property_globallyremoves a property from every entry of the buffer, including its file-level drawer; keyword defaults are retained.:Org compute_property_at_pointuses the first matching summary operator in the nearest COLUMNS format. It updates existing values of that property within the format's scope; other properties are unchanged. With only a#+COLUMNSor default format, that scope is the current subtree (the whole file before the first heading). An inherited COLUMNS property selects the subtree or file drawer where it is defined. <prefix>xe Set the Effort property (stored as typed, e.g.1h). <prefix>lI Create an ID property (or show the existing one).
Property lines are written withproperty_format(org-property-format,"%-10s %s")::Owner: me; an empty value leaves:Owner:.
Setting the special properties TODO, PRIORITY, SCHEDULED or DEADLINE changes the headline instead (an empty value removes them), like Emacs org-entry-put; the other special properties cannot be set. Every change through <prefix>p fires the User autocmd OrgPropertyChanged with data { bufnr, lnum, name, value } (org-property-changed-functions).
Special properties available in matches and column view: ITEM, TODO, PRIORITY, TAGS, ALLTAGS, CATEGORY, LEVEL, FILE, SCHEDULED, DEADLINE, CLOSED, TIMESTAMP, TIMESTAMP_IA (first inactive timestamp), BLOCKED (t when the entry cannot be marked done, else empty).
Inheritance is controlled by use_property_inheritance (true, false, a list of property names, or a regexp matching them). NAME+ lines append to the value, also to an inherited one: :Acc: 1 on a parent and :Acc+: 2 on its child give 1 2. property_separators changes the separator per property (org-property-separators): { { { "A", "B" }, ", " }, { "^LIST", "|" } } joins A and B values with ", " and properties matching the regexp with "|". A property drawer at the top of the file, #+PROPERTY: NAME value and global_properties set values for the whole file, in that order. properties_postprocess maps property names (ignoring case) to functions function(value, target) that adjust values given to <prefix>p (org-properties-postprocess-alist).
:Org toggle_custom_properties_visibility hides the lines of the properties named in custom_properties in every property drawer of the buffer, and shows them again (org-toggle-custom-properties-visibility). Editing next to hidden ones asks whether to show them (org-hidden-lines). Needs Neovim 0.11.
<prefix>C Column view. The format comes from#+COLUMNS, the COLUMNS property orcolumns_default_format, for example%25ITEM %TODO %3PRIORITY %TAGS %Effort{:}. Summary operators (org-columns-summary-types-default): {+} (sum, printed like Emacs:4.1,6), {$} (2 decimals), {min} {max} {mean} (mean is always a float:3.0), {:} {:min} {:max} {:mean} (durations, induration_formatunless all values are H:MM, or H:MM:SS: then H:MM:SS), {X} {X/} {X%} (checkboxes), {@min} {@max} {@mean} (ages of timestamps or durations in the standard min/h/d units), {est+} (low-high estimates). A format after;,{+;%.1f}, is applied to every value of the column, leaves included.columns_summary_typesadds operators:{ ["+|"] = function(values, fmt) ... end }(or{ summarize, collect }wherecollect(headline, prop)gives a headline's value). Like Emacs (org-columns-compute-all), opening column view and updating a columnview block write each computed summary into the entry's property when the entry already has that property (even empty) and its value differs. SCHEDULED, DEADLINE and TIMESTAMP show as inactive timestamps;columns_modify_value_for_display_function(function(title, value)) can change any shown value. The view uses the nearest COLUMNS property's scope; with a keyword/default format it covers the current subtree, or the whole file before the first heading. A count (1<prefix>C, like C-u in Emacs org-columns) always shows the whole file with the file-level format. The buffer's own first#+COLUMNSline takes precedence over one imported with#+SETUPFILE. Like Emacs, the view is drawn over the headlines of the org buffer itself: every headline in scope shows its column row (summaries on parents) in place of its text, the column titles are in the window's winbar (Emacs header-line) and the window gets 'nowrap' and 'virtualedit' so the cursor reaches every column. The buffer text is not changed; body lines stay as they are. The keys below act on the headline and column under the cursor, and keep their usual meaning on other lines; leaving the window orqrestores the buffer, its mappings and the window options. Like Emacs, the headline lines are read-only while the view is on: on a column row the keys that change text (i A O x d D S J ~ . ...) and entering Insert mode only say "Text is read-only: Type ‘e’ to edit property"; the view's own keys edit. Rows follow edits of the text;rrecomputes. Withcolumns_view = "table"the view is a table in a split instead (with <CR> to jump to the headline). Groups: OrgColumn, OrgColumnTitle. Keys in the view: e edit the value (TODO, tags, dates, ...) n / p next / previous allowed value (also <S-Right> / <S-Left>):PROP_ALL, TODO keywords, priorities, checkboxes (columns_checkbox_allowed_values), days 1 .. 9 select the Nth allowed value (digits are not counts in the view) a edit the allowed values (PROP_ALL) < / > narrow / widen the column <M-h> <M-l> move the column left / right (also <M-Left> / <M-Right>) <M-L> / <M-H> add a column / delete it (also <M-S-Right> / <M-S-Left>) s edit the column's attributes <M-k> <M-j> move the entry up / down (also <M-Up> / <M-Down>) <C-c><C-c> toggle a checkbox value, else quit <C-c><C-t> change the TODO state <C-c><C-o> open the link in the field c / o contents / overview visibility (overlay view) h l w b previous / next column (also <Left> <Right> <BS> <Space> <M-b> <M-f>),$the last one (overlay view: Emacs gives each column one character) v view value, r / g refresh, q quit (<CR> jumps to the headline in the table view). Format changes are saved to the COLUMNS property or the#+COLUMNS:line the view comes from.