ui: use t/l keys for tree/list, T for "today", drop vi keys?! retune help (#1286)
This commit is contained in:
parent
a3ae4d88f8
commit
847fc23236
@ -208,8 +208,9 @@ asDraw UIState{aopts=_uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}
|
|||||||
quickhelp = borderKeysStr' [
|
quickhelp = borderKeysStr' [
|
||||||
("?", str "help")
|
("?", str "help")
|
||||||
-- ,("RIGHT", str "register")
|
-- ,("RIGHT", str "register")
|
||||||
|
,("t", str "tree")
|
||||||
|
,("l", str "list")
|
||||||
,("-+", str "depth")
|
,("-+", str "depth")
|
||||||
,("T", renderToggle (tree_ ropts) "flat" "tree")
|
|
||||||
,("H", renderToggle (not ishistorical) "end-bals" "changes")
|
,("H", renderToggle (not ishistorical) "end-bals" "changes")
|
||||||
,("F", renderToggle1 (isJust $ forecast_ ropts) "forecast")
|
,("F", renderToggle1 (isJust $ forecast_ ropts) "forecast")
|
||||||
--,("/", "filter")
|
--,("/", "filter")
|
||||||
@ -322,11 +323,12 @@ asHandle ui0@UIState{
|
|||||||
VtyEvent (EvKey (KChar '-') []) -> continue $ regenerateScreens j d $ decDepth ui
|
VtyEvent (EvKey (KChar '-') []) -> continue $ regenerateScreens j d $ decDepth ui
|
||||||
VtyEvent (EvKey (KChar '_') []) -> continue $ regenerateScreens j d $ decDepth ui
|
VtyEvent (EvKey (KChar '_') []) -> continue $ regenerateScreens j d $ decDepth ui
|
||||||
VtyEvent (EvKey (KChar c) []) | c `elem` ['+','='] -> continue $ regenerateScreens j d $ incDepth ui
|
VtyEvent (EvKey (KChar c) []) | c `elem` ['+','='] -> continue $ regenerateScreens j d $ incDepth ui
|
||||||
VtyEvent (EvKey (KChar 't') []) -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
VtyEvent (EvKey (KChar 'T') []) -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
||||||
|
|
||||||
-- display mode/query toggles
|
-- display mode/query toggles
|
||||||
VtyEvent (EvKey (KChar 'H') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleHistorical ui
|
VtyEvent (EvKey (KChar 'H') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleHistorical ui
|
||||||
VtyEvent (EvKey (KChar 'T') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleTree ui
|
VtyEvent (EvKey (KChar 't') []) -> asCenterAndContinue $ regenerateScreens j d $ setTree ui
|
||||||
|
VtyEvent (EvKey (KChar 'l') []) -> asCenterAndContinue $ regenerateScreens j d $ setList ui
|
||||||
VtyEvent (EvKey (KChar 'Z') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleEmpty ui
|
VtyEvent (EvKey (KChar 'Z') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleEmpty ui
|
||||||
VtyEvent (EvKey (KChar 'R') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleReal ui
|
VtyEvent (EvKey (KChar 'R') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleReal ui
|
||||||
VtyEvent (EvKey (KChar 'U') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleUnmarked ui
|
VtyEvent (EvKey (KChar 'U') []) -> asCenterAndContinue $ regenerateScreens j d $ toggleUnmarked ui
|
||||||
|
|||||||
@ -235,7 +235,12 @@ rsDraw UIState{aopts=_uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}
|
|||||||
("?", str "help")
|
("?", str "help")
|
||||||
,("LEFT", str "back")
|
,("LEFT", str "back")
|
||||||
-- ,("RIGHT", str "transaction")
|
-- ,("RIGHT", str "transaction")
|
||||||
,("T", renderToggle (tree_ ropts) "flat(-subs)" "tree(+subs)") -- rsForceInclusive may override, but use tree_ to ensure a visible toggle effect
|
|
||||||
|
-- tree/list mode - rsForceInclusive may override, but use tree_ to ensure a visible toggle effect
|
||||||
|
-- ,("T", renderToggle (tree_ ropts) "flat(-subs)" "tree(+subs)")
|
||||||
|
,("t", str "tree(+subs)")
|
||||||
|
,("l", str "list(-subs)")
|
||||||
|
|
||||||
,("H", renderToggle (not ishistorical) "historical" "period")
|
,("H", renderToggle (not ishistorical) "historical" "period")
|
||||||
,("F", renderToggle1 (isJust $ forecast_ ropts) "forecast")
|
,("F", renderToggle1 (isJust $ forecast_ ropts) "forecast")
|
||||||
-- ,("a", "add")
|
-- ,("a", "add")
|
||||||
@ -316,7 +321,7 @@ rsHandle ui@UIState{
|
|||||||
VtyEvent (EvKey (KChar 'I') []) -> continue $ uiCheckBalanceAssertions d (toggleIgnoreBalanceAssertions ui)
|
VtyEvent (EvKey (KChar 'I') []) -> continue $ uiCheckBalanceAssertions d (toggleIgnoreBalanceAssertions ui)
|
||||||
VtyEvent (EvKey (KChar 'a') []) -> suspendAndResume $ clearScreen >> setCursorPosition 0 0 >> add copts j >> uiReloadJournalIfChanged copts d j ui
|
VtyEvent (EvKey (KChar 'a') []) -> suspendAndResume $ clearScreen >> setCursorPosition 0 0 >> add copts j >> uiReloadJournalIfChanged copts d j ui
|
||||||
VtyEvent (EvKey (KChar 'A') []) -> suspendAndResume $ void (runIadd (journalFilePath j)) >> uiReloadJournalIfChanged copts d j ui
|
VtyEvent (EvKey (KChar 'A') []) -> suspendAndResume $ void (runIadd (journalFilePath j)) >> uiReloadJournalIfChanged copts d j ui
|
||||||
VtyEvent (EvKey (KChar 't') []) -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
VtyEvent (EvKey (KChar 'T') []) -> continue $ regenerateScreens j d $ setReportPeriod (DayPeriod d) ui
|
||||||
VtyEvent (EvKey (KChar 'E') []) -> suspendAndResume $ void (runEditor pos f) >> uiReloadJournalIfChanged copts d j ui
|
VtyEvent (EvKey (KChar 'E') []) -> suspendAndResume $ void (runEditor pos f) >> uiReloadJournalIfChanged copts d j ui
|
||||||
where
|
where
|
||||||
(pos,f) = case listSelectedElement rsList of
|
(pos,f) = case listSelectedElement rsList of
|
||||||
@ -330,7 +335,8 @@ rsHandle ui@UIState{
|
|||||||
VtyEvent (EvKey (KChar 'B') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleCost ui
|
VtyEvent (EvKey (KChar 'B') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleCost ui
|
||||||
VtyEvent (EvKey (KChar 'V') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleValue ui
|
VtyEvent (EvKey (KChar 'V') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleValue ui
|
||||||
VtyEvent (EvKey (KChar 'H') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleHistorical ui
|
VtyEvent (EvKey (KChar 'H') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleHistorical ui
|
||||||
VtyEvent (EvKey (KChar 'T') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleTree ui
|
VtyEvent (EvKey (KChar 't') []) -> rsCenterAndContinue $ regenerateScreens j d $ setTree ui
|
||||||
|
VtyEvent (EvKey (KChar 'l') []) -> rsCenterAndContinue $ regenerateScreens j d $ setList ui
|
||||||
VtyEvent (EvKey (KChar 'Z') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleEmpty ui
|
VtyEvent (EvKey (KChar 'Z') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleEmpty ui
|
||||||
VtyEvent (EvKey (KChar 'R') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleReal ui
|
VtyEvent (EvKey (KChar 'R') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleReal ui
|
||||||
VtyEvent (EvKey (KChar 'U') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleUnmarked ui
|
VtyEvent (EvKey (KChar 'U') []) -> rsCenterAndContinue $ regenerateScreens j d $ toggleUnmarked ui
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
{-# LANGUAGE CPP #-}
|
|
||||||
{- | UIState operations. -}
|
{- | UIState operations. -}
|
||||||
|
|
||||||
|
{-# LANGUAGE CPP #-}
|
||||||
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# LANGUAGE RecordWildCards #-}
|
{-# LANGUAGE RecordWildCards #-}
|
||||||
|
|
||||||
@ -135,6 +136,16 @@ valuationToggleValue :: Maybe ValuationType -> Maybe ValuationType
|
|||||||
valuationToggleValue (Just (AtDefault _)) = Nothing
|
valuationToggleValue (Just (AtDefault _)) = Nothing
|
||||||
valuationToggleValue _ = Just $ AtDefault Nothing
|
valuationToggleValue _ = Just $ AtDefault Nothing
|
||||||
|
|
||||||
|
-- | Set hierarchic account tree mode.
|
||||||
|
setTree :: UIState -> UIState
|
||||||
|
setTree ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||||
|
ui{aopts=uopts{cliopts_=copts{reportopts_=ropts{accountlistmode_=ALTree}}}}
|
||||||
|
|
||||||
|
-- | Set flat account list mode.
|
||||||
|
setList :: UIState -> UIState
|
||||||
|
setList ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||||
|
ui{aopts=uopts{cliopts_=copts{reportopts_=ropts{accountlistmode_=ALFlat}}}}
|
||||||
|
|
||||||
-- | Toggle between flat and tree mode. If current mode is unspecified/default, assume it's flat.
|
-- | Toggle between flat and tree mode. If current mode is unspecified/default, assume it's flat.
|
||||||
toggleTree :: UIState -> UIState
|
toggleTree :: UIState -> UIState
|
||||||
toggleTree ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
toggleTree ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||||
|
|||||||
@ -91,31 +91,31 @@ helpDialog _copts =
|
|||||||
render $
|
render $
|
||||||
withDefAttr "help" $
|
withDefAttr "help" $
|
||||||
renderDialog (dialog (Just "Help (?/LEFT/ESC to close)") Nothing (c^.availWidthL)) $ -- (Just (0,[("ok",())]))
|
renderDialog (dialog (Just "Help (?/LEFT/ESC to close)") Nothing (c^.availWidthL)) $ -- (Just (0,[("ok",())]))
|
||||||
padTop (Pad 1) $ padLeft (Pad 1) $ padRight (Pad 1) $
|
padTop (Pad 0) $ padLeft (Pad 1) $ padRight (Pad 1) $
|
||||||
vBox [
|
vBox [
|
||||||
hBox [
|
hBox [
|
||||||
padRight (Pad 1) $
|
padRight (Pad 1) $
|
||||||
vBox [
|
vBox [
|
||||||
withAttr ("help" <> "heading") $ str "Navigation"
|
withAttr ("help" <> "heading") $ str "Navigation"
|
||||||
,renderKey ("UP/DOWN/PUP/PDN/HOME/END/emacs/vi keys", "")
|
,renderKey ("UP/DOWN/PUP/PDN/HOME/END or C-p/n/f/b", "")
|
||||||
,str " move selection"
|
,str " move selection"
|
||||||
,renderKey ("RIGHT", "show account txns, txn detail")
|
,renderKey ("RIGHT", "show account txns, or txn detail")
|
||||||
,renderKey ("LEFT ", "go back")
|
,renderKey ("LEFT ", "go back")
|
||||||
,renderKey ("ESC ", "cancel or reset")
|
,renderKey ("ESC ", "cancel input, or reset")
|
||||||
,str " "
|
,str " "
|
||||||
,withAttr ("help" <> "heading") $ str "Report period"
|
,withAttr ("help" <> "heading") $ str "Report period"
|
||||||
,renderKey ("S-DOWN /S-UP ", "shrink/grow period")
|
,renderKey ("S-DOWN /S-UP ", "shrink/grow period")
|
||||||
,renderKey ("S-RIGHT/S-LEFT", "next/previous period")
|
,renderKey ("S-RIGHT/S-LEFT", "next/previous period")
|
||||||
,renderKey ("t ", "set period to today")
|
,renderKey ("T ", "set period to today")
|
||||||
,str " "
|
,str " "
|
||||||
,withAttr ("help" <> "heading") $ str "Accounts screen"
|
,withAttr ("help" <> "heading") $ str "Accounts screen"
|
||||||
,renderKey ("-+0123456789 ", "set depth limit")
|
,renderKey ("1234567890-+ ", "set/adjust depth limit")
|
||||||
,renderKey ("T ", "toggle tree/flat mode")
|
,renderKey ("t/l", "set tree/list mode")
|
||||||
,renderKey ("H ", "historical end balance/period change")
|
,renderKey ("H ", "toggle historical balance/change")
|
||||||
,str " "
|
,str " "
|
||||||
,withAttr ("help" <> "heading") $ str "Register screen"
|
,withAttr ("help" <> "heading") $ str "Register screen"
|
||||||
,renderKey ("T ", "toggle subaccount txns\n(and accounts screen tree/flat mode)")
|
,renderKey ("t/l", "show/hide subaccount txns\n(and set accounts tree/list mode)")
|
||||||
,renderKey ("H ", "show historical total/period total")
|
,renderKey ("H ", "toggle historical/period total")
|
||||||
,str " "
|
,str " "
|
||||||
]
|
]
|
||||||
,padLeft (Pad 1) $ padRight (Pad 0) $
|
,padLeft (Pad 1) $ padRight (Pad 0) $
|
||||||
@ -130,8 +130,8 @@ helpDialog _copts =
|
|||||||
,str " "
|
,str " "
|
||||||
,withAttr ("help" <> "heading") $ str "Help"
|
,withAttr ("help" <> "heading") $ str "Help"
|
||||||
,renderKey ("? ", "toggle this help")
|
,renderKey ("? ", "toggle this help")
|
||||||
,renderKey ("p/m/i ", "(with this help open)\nshow manual in pager/man/info")
|
,renderKey ("p/m/i", "(with this help open)\nshow manual in pager/man/info")
|
||||||
,str " "
|
-- ,str " " -- need one more line in 80x25
|
||||||
,withAttr ("help" <> "heading") $ str "Other"
|
,withAttr ("help" <> "heading") $ str "Other"
|
||||||
,renderKey ("a ", "add transaction (hledger add)")
|
,renderKey ("a ", "add transaction (hledger add)")
|
||||||
,renderKey ("A ", "add transaction (hledger-iadd)")
|
,renderKey ("A ", "add transaction (hledger-iadd)")
|
||||||
@ -341,10 +341,16 @@ scrollSelectionToMiddle list = do
|
|||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
-- arrow keys vi keys emacs keys
|
-- arrow keys vi keys emacs keys
|
||||||
moveUpEvents = [EvKey KUp [] , EvKey (KChar 'k') [], EvKey (KChar 'p') [MCtrl]]
|
-- moveUpEvents = [EvKey KUp [] , EvKey (KChar 'k') [], EvKey (KChar 'p') [MCtrl]]
|
||||||
moveDownEvents = [EvKey KDown [] , EvKey (KChar 'j') [], EvKey (KChar 'n') [MCtrl]]
|
-- moveDownEvents = [EvKey KDown [] , EvKey (KChar 'j') [], EvKey (KChar 'n') [MCtrl]]
|
||||||
moveLeftEvents = [EvKey KLeft [] , EvKey (KChar 'h') [], EvKey (KChar 'b') [MCtrl]]
|
-- moveLeftEvents = [EvKey KLeft [] , EvKey (KChar 'h') [], EvKey (KChar 'b') [MCtrl]]
|
||||||
moveRightEvents = [EvKey KRight [], EvKey (KChar 'l') [], EvKey (KChar 'f') [MCtrl]]
|
-- moveRightEvents = [EvKey KRight [], EvKey (KChar 'l') [], EvKey (KChar 'f') [MCtrl]]
|
||||||
|
|
||||||
|
-- arrow keys emacs keys
|
||||||
|
moveUpEvents = [EvKey KUp [] , EvKey (KChar 'p') [MCtrl]]
|
||||||
|
moveDownEvents = [EvKey KDown [] , EvKey (KChar 'n') [MCtrl]]
|
||||||
|
moveLeftEvents = [EvKey KLeft [] , EvKey (KChar 'b') [MCtrl]]
|
||||||
|
moveRightEvents = [EvKey KRight [], EvKey (KChar 'f') [MCtrl]]
|
||||||
|
|
||||||
normaliseMovementKeys ev
|
normaliseMovementKeys ev
|
||||||
| ev `elem` moveUpEvents = EvKey KUp []
|
| ev `elem` moveUpEvents = EvKey KUp []
|
||||||
|
|||||||
@ -69,10 +69,10 @@ Any QUERYARGS are interpreted as a hledger search query which filters the data.
|
|||||||
`--change`
|
`--change`
|
||||||
: show period balances (changes) at startup instead of historical balances
|
: show period balances (changes) at startup instead of historical balances
|
||||||
|
|
||||||
`-F --flat`
|
`-l --flat`
|
||||||
: show accounts as a list (default)
|
: show accounts as a flat list (default)
|
||||||
|
|
||||||
`-T --tree`
|
`-t --tree`
|
||||||
: show accounts as a tree
|
: show accounts as a tree
|
||||||
|
|
||||||
hledger input options:
|
hledger input options:
|
||||||
@ -87,113 +87,112 @@ hledger help options:
|
|||||||
|
|
||||||
_helpoptions_
|
_helpoptions_
|
||||||
|
|
||||||
A @FILE argument will be expanded to the contents of FILE,
|
a @file argument will be expanded to the contents of file,
|
||||||
which should contain one command line option/argument per line.
|
which should contain one command line option/argument per line.
|
||||||
(To prevent this, insert a `--` argument before.)
|
(to prevent this, insert a `--` argument before.)
|
||||||
|
|
||||||
# KEYS
|
# keys
|
||||||
|
|
||||||
`?` shows a help dialog listing all keys.
|
`?` shows a help dialog listing all keys.
|
||||||
(Some of these also appear in the quick help at the bottom of each screen.)
|
(some of these also appear in the quick help at the bottom of each screen.)
|
||||||
Press `?` again (or `ESCAPE`, or `LEFT`) to close it.
|
press `?` again (or `escape`, or `left`) to close it.
|
||||||
The following keys work on most screens:
|
the following keys work on most screens:
|
||||||
|
|
||||||
The cursor keys navigate:
|
the cursor keys navigate:
|
||||||
`right` (or `enter`) goes deeper,
|
`right` (or `enter`) goes deeper,
|
||||||
`left` returns to the previous screen,
|
`left` returns to the previous screen,
|
||||||
`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through lists.
|
`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through lists.
|
||||||
Vi-style (`h`/`j`/`k`/`l`) and Emacs-style (`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
|
Emacs-style (`ctrl-p`/`ctrl-n`/`ctrl-f`/`ctrl-b`) movement keys are also supported
|
||||||
|
(but not vi-style keys, since hledger-1.19, sorry!).
|
||||||
A tip: movement speed is limited by your keyboard repeat rate,
|
A tip: movement speed is limited by your keyboard repeat rate,
|
||||||
to move faster you may want to adjust it.
|
to move faster you may want to adjust it.
|
||||||
(If you're on a mac, the Karabiner app is one way to do that.)
|
(If you're on a mac, the karabiner app is one way to do that.)
|
||||||
|
|
||||||
With shift pressed, the cursor keys adjust the report period,
|
with shift pressed, the cursor keys adjust the report period,
|
||||||
limiting the transactions to be shown (by default, all are shown).
|
limiting the transactions to be shown (by default, all are shown).
|
||||||
`shift-down/up` steps downward and upward through these standard report period durations:
|
`shift-down/up` steps downward and upward through these standard report period durations:
|
||||||
year, quarter, month, week, day.
|
year, quarter, month, week, day.
|
||||||
Then, `shift-left/right` moves to the previous/next period.
|
then, `shift-left/right` moves to the previous/next period.
|
||||||
`t` sets the report period to today.
|
`T` sets the report period to today.
|
||||||
With the `--watch` option, when viewing a "current" period
|
with the `--watch` option, when viewing a "current" period
|
||||||
(the current day, week, month, quarter, or year),
|
(the current day, week, month, quarter, or year),
|
||||||
the period will move automatically to track the current date.
|
the period will move automatically to track the current date.
|
||||||
To set a non-standard period, you can use `/` and a `date:` query.
|
to set a non-standard period, you can use `/` and a `date:` query.
|
||||||
|
|
||||||
`/` lets you set a general filter query limiting the data shown,
|
`/` lets you set a general filter query limiting the data shown,
|
||||||
using the same [query terms](hledger.html#queries) as in hledger and hledger-web.
|
using the same [query terms](hledger.html#queries) as in hledger and hledger-web.
|
||||||
While editing the query, you can use [CTRL-a/e/d/k, BS, cursor keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
|
while editing the query, you can use [ctrl-a/e/d/k, bs, cursor keys](http://hackage.haskell.org/package/brick-0.7/docs/brick-widgets-edit.html#t:editor);
|
||||||
press `ENTER` to set it, or `ESCAPE`to cancel.
|
press `enter` to set it, or `escape`to cancel.
|
||||||
There are also keys for quickly adjusting some common filters like account depth and transaction status (see below).
|
there are also keys for quickly adjusting some common filters like account depth and transaction status (see below).
|
||||||
`BACKSPACE` or `DELETE` removes all filters, showing all transactions.
|
`backspace` or `delete` removes all filters, showing all transactions.
|
||||||
|
|
||||||
As mentioned above, by default hledger-ui hides future transactions -
|
as mentioned above, by default hledger-ui hides future transactions -
|
||||||
both ordinary transactions recorded in the journal, and periodic
|
both ordinary transactions recorded in the journal, and periodic
|
||||||
transactions generated by rule. `F` toggles forecast mode, in which
|
transactions generated by rule. `f` toggles forecast mode, in which
|
||||||
future/forecasted transactions are shown. (experimental)
|
future/forecasted transactions are shown. *(experimental)*
|
||||||
|
|
||||||
`ESCAPE` removes all filters and jumps back to the top screen.
|
`escape` removes all filters and jumps back to the top screen.
|
||||||
Or, it cancels a minibuffer edit or help dialog in progress.
|
or, it cancels a minibuffer edit or help dialog in progress.
|
||||||
|
|
||||||
`CTRL-l` redraws the screen and centers the selection if possible
|
`ctrl-l` redraws the screen and centers the selection if possible
|
||||||
(selections near the top won't be centered, since we don't scroll above the top).
|
(selections near the top won't be centered, since we don't scroll above the top).
|
||||||
|
|
||||||
`g` reloads from the data file(s) and updates the current screen and any
|
`g` reloads from the data file(s) and updates the current screen and any
|
||||||
previous screens. (With large files, this could cause a noticeable pause.)
|
previous screens. (with large files, this could cause a noticeable pause.)
|
||||||
|
|
||||||
`I` toggles balance assertion checking.
|
`i` toggles balance assertion checking.
|
||||||
Disabling balance assertions temporarily can be useful for troubleshooting.
|
disabling balance assertions temporarily can be useful for troubleshooting.
|
||||||
|
|
||||||
`a` runs command-line hledger's add command, and reloads the updated file.
|
`a` runs command-line hledger's add command, and reloads the updated file.
|
||||||
This allows some basic data entry.
|
this allows some basic data entry.
|
||||||
|
|
||||||
`A` is like `a`, but runs the [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
|
`a` is like `a`, but runs the [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
|
||||||
which provides a terminal interface.
|
which provides a terminal interface.
|
||||||
This key will be available if `hledger-iadd` is installed in $PATH.
|
this key will be available if `hledger-iadd` is installed in $path.
|
||||||
|
|
||||||
`E` runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (`emacsclient -a "" -nw`) on the journal file.
|
`e` runs $hledger_ui_editor, or $editor, or a default (`emacsclient -a "" -nw`) on the journal file.
|
||||||
With some editors (emacs, vi), the cursor will be positioned at the current transaction
|
with some editors (emacs, vi), the cursor will be positioned at the current transaction
|
||||||
when invoked from the register and transaction screens, and at the error location (if possible)
|
when invoked from the register and transaction screens, and at the error location (if possible)
|
||||||
when invoked from the error screen.
|
when invoked from the error screen.
|
||||||
|
|
||||||
`q` quits the application.
|
`b` toggles cost mode, showing amounts in their transaction price's
|
||||||
|
|
||||||
Experimental:
|
|
||||||
|
|
||||||
`B` toggles cost mode, showing amounts in their transaction price's
|
|
||||||
commodity (like toggling the
|
commodity (like toggling the
|
||||||
[`-B/--cost`](https://hledger.org/hledger.html#b-cost) flag).
|
[`-b/--cost`](https://hledger.org/hledger.html#b-cost) flag).
|
||||||
|
|
||||||
`V` toggles value mode, showing amounts' current market value in their
|
`v` toggles value mode, showing amounts' current market value in their
|
||||||
default valuation commodity (like toggling the
|
default valuation commodity (like toggling the
|
||||||
[`-V/--market`](https://hledger.org/hledger.html#v-market-value) flag).
|
[`-v/--market`](https://hledger.org/hledger.html#v-market-value) flag).
|
||||||
Note, "current market value" means the value on the report end date if specified, otherwise today.
|
note, "current market value" means the value on the report end date if specified, otherwise today.
|
||||||
To see the value on another date, you can temporarily set that as the report end date.
|
to see the value on another date, you can temporarily set that as the report end date.
|
||||||
Eg: to see a transaction as it was valued on july 30,
|
eg: to see a transaction as it was valued on july 30,
|
||||||
go to the accounts or register screen,
|
go to the accounts or register screen,
|
||||||
press `/`,
|
press `/`,
|
||||||
and add ` date:-7/30` to the query.
|
and add ` date:-7/30` to the query.
|
||||||
|
|
||||||
At most one of cost or value mode can be active at once.
|
at most one of cost or value mode can be active at once.
|
||||||
|
|
||||||
There's not yet any visual reminder when cost or value mode is active;
|
there's not yet any visual reminder when cost or value mode is active;
|
||||||
for now pressing `B` `B` `V` should reliably reset to normal mode.
|
for now pressing `b` `b` `v` should reliably reset to normal mode.
|
||||||
|
|
||||||
With --watch active, if you save an edit to the journal file
|
with --watch active, if you save an edit to the journal file
|
||||||
while viewing the transaction screen in cost or value mode,
|
while viewing the transaction screen in cost or value mode,
|
||||||
the `B`/`V` keys will stop working.
|
the `b`/`v` keys will stop working.
|
||||||
To work around, press g to force a manual reload, or exit the transaction screen.
|
to work around, press g to force a manual reload, or exit the transaction screen.
|
||||||
|
|
||||||
Additional screen-specific keys are described below.
|
`q` quits the application.
|
||||||
|
|
||||||
# SCREENS
|
additional screen-specific keys are described below.
|
||||||
|
|
||||||
## Accounts screen
|
# screens
|
||||||
|
|
||||||
This is normally the first screen displayed.
|
## accounts screen
|
||||||
It lists accounts and their balances, like hledger's balance command.
|
|
||||||
By default, it shows all accounts and their latest ending balances (including the balances of subaccounts).
|
this is normally the first screen displayed.
|
||||||
|
it lists accounts and their balances, like hledger's balance command.
|
||||||
|
by default, it shows all accounts and their latest ending balances (including the balances of subaccounts).
|
||||||
if you specify a query on the command line, it shows just the matched accounts and the balances from matched transactions.
|
if you specify a query on the command line, it shows just the matched accounts and the balances from matched transactions.
|
||||||
|
|
||||||
Account names are shown as a flat list by default. Press `T` to toggle tree mode.
|
Press `t` or `l` to show accounts as a tree or flat list (the default).
|
||||||
In flat mode, account balances are exclusive of subaccounts, except where subaccounts are hidden by a depth limit (see below).
|
In flat mode, account balances are exclusive of subaccounts, except where subaccounts are hidden by a depth limit (see below).
|
||||||
In tree mode, all account balances are inclusive of subaccounts.
|
In tree mode, all account balances are inclusive of subaccounts.
|
||||||
|
|
||||||
@ -249,7 +248,7 @@ Transactions affecting this account's subaccounts will be included in the regist
|
|||||||
if the accounts screen is in tree mode,
|
if the accounts screen is in tree mode,
|
||||||
or if it's in flat mode but this account has subaccounts which are not shown due to a depth limit.
|
or if it's in flat mode but this account has subaccounts which are not shown due to a depth limit.
|
||||||
In other words, the register always shows the transactions contributing to the balance shown on the accounts screen.
|
In other words, the register always shows the transactions contributing to the balance shown on the accounts screen.
|
||||||
Tree mode/flat mode can be toggled with `T` here also.
|
Tree mode or flat mode can be selected with `t`or `l` here also.
|
||||||
|
|
||||||
`U` toggles filtering by [unmarked status](journal.html#status), showing or hiding unmarked transactions.
|
`U` toggles filtering by [unmarked status](journal.html#status), showing or hiding unmarked transactions.
|
||||||
Similarly, `P` toggles pending transactions, and `C` toggles cleared transactions.
|
Similarly, `P` toggles pending transactions, and `C` toggles cleared transactions.
|
||||||
|
|||||||
@ -209,7 +209,7 @@ flattreeflags showamounthelp = [
|
|||||||
("show accounts as a flat list (default)"
|
("show accounts as a flat list (default)"
|
||||||
++ if showamounthelp then ". Amounts exclude subaccount amounts, except where the account is depth-clipped." else "")
|
++ if showamounthelp then ". Amounts exclude subaccount amounts, except where the account is depth-clipped." else "")
|
||||||
,flagNone ["tree","t"] (setboolopt "tree")
|
,flagNone ["tree","t"] (setboolopt "tree")
|
||||||
("show accounts as a hierarchic tree" ++ if showamounthelp then ". Amounts include subaccount amounts." else "")
|
("show accounts as a tree" ++ if showamounthelp then ". Amounts include subaccount amounts." else "")
|
||||||
]
|
]
|
||||||
|
|
||||||
-- | Common flags that are accepted but not shown in --help,
|
-- | Common flags that are accepted but not shown in --help,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user