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