Skip to content

Commit 26e1e04

Browse files
authored
Merge pull request #144 from lambdalisue/docs
Add docs about mapping/glossary
2 parents ffef6aa + 9783818 commit 26e1e04

File tree

1 file changed

+335
-0
lines changed

1 file changed

+335
-0
lines changed

doc/fern.txt

Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ INTERFACE |fern-interface|
1919
FUNCTION |fern-function|
2020
AUTOCMD |fern-autocmd|
2121
HIGHLIGHT |fern-highlight|
22+
MAPPING |fern-mapping|
23+
GLOBAL |fern-mapping-global|
24+
FILE |fern-mapping-file|
25+
DICT |fern-mapping-dict|
26+
GLOSSARY |fern-glossary|
2227
CHANGELOG |fern-changelog|
2328

2429

@@ -631,6 +636,336 @@ FernWindowSelectStatusLine *hl-FernWindowSelectStatusLine*
631636
through "open:select" action.
632637

633638

639+
=============================================================================
640+
MAPPING *fern-mapping*
641+
642+
As described in |fern-action|, some mappings in fern are used as action.
643+
See |fern-action| for more detail.
644+
645+
-----------------------------------------------------------------------------
646+
GLOBAL *fern-mapping-global*
647+
648+
<Plug>(fern-action-zoom:half)
649+
Zoom width of the drawer style fern to half of the global width.
650+
The original window width will be restored once user leave the window.
651+
It only works on a drawer style fern window.
652+
653+
<Plug>(fern-action-zoom:full)
654+
Zoom width of the drawer style fern to full of the global width.
655+
The original window width will be restored once user leave the window.
656+
It only works on a drawer style fern window.
657+
658+
<Plug>(fern-action-hidden-set)
659+
Show hidden nodes. For example hidden nodes in file:// scheme is a
660+
file or directory starts from '.' character.
661+
662+
<Plug>(fern-action-hidden-unset)
663+
Hide hidden nodes. For example hidden nodes in file:// scheme is a
664+
file or directory starts from '.' character.
665+
666+
<Plug>(fern-action-hidden-unset)
667+
Toggle hidden nodes. For example hidden nodes in file:// scheme is a
668+
file or directory starts from '.' character.
669+
670+
<Plug>(fern-action-include)
671+
Open a prompt to enter include filter. Users can type a |pattern| to
672+
filter nodes recursively.
673+
674+
<Plug>(fern-action-exclude)
675+
Open a prompt to enter exclude filter. Users can type a |pattern| to
676+
filter nodes recursively.
677+
678+
<Plug>(fern-action-mark-clear)
679+
Clear existing marks.
680+
681+
<Plug>(fern-action-mark-toggle)
682+
Toggle marks on cursor node(s).
683+
684+
<Plug>(fern-action-mark-set)
685+
Set marks on cursor node(s).
686+
687+
<Plug>(fern-action-mark-unset)
688+
Unset marks on cursor node(s).
689+
690+
<Plug>(fern-action-debug)
691+
Echo debug information of a cursor node.
692+
693+
<Plug>(fern-action-reload)
694+
Reload on a cursor node and its children.
695+
696+
<Plug>(fern-action-expand)
697+
Expand on a cursor node.
698+
699+
<Plug>(fern-action-collapse)
700+
Collapse on a cursor node.
701+
702+
<Plug>(fern-action-reveal)
703+
Open a prompt to reveal a node in a tree.
704+
705+
<Plug>(fern-action-enter)
706+
Open a new fern buffer which root node is a cursor node. In other
707+
word, get enter the directory.
708+
709+
<Plug>(fern-action-leave)
710+
Open a new fern buffer which root node is a parent node of the current
711+
root node. In other word, go up directory.
712+
713+
<Plug>(fern-action-open:select)
714+
Open a cursor node or marked nodes through "window selector"
715+
(|fern-glofern-glossary-window-selector|.)
716+
717+
<Plug>(fern-action-open:split)
718+
<Plug>(fern-action-open:vsplit)
719+
<Plug>(fern-action-open:tabedit)
720+
Open a cursor node or marked nodes with a corresponding command.
721+
The command will be applied on an "anchor" window when invoked from a
722+
drawer style fern (|fern-glossary-anchor|.)
723+
724+
<Plug>(fern-action-edit-or-error)
725+
Open a cursor node or marked nodes with |edit| command or fallback
726+
to print an error.
727+
Note that when 'hidden' has set or 'bufhidden' is "hide", the |edit|
728+
command will never fails.
729+
730+
<Plug>(fern-action-open:edit-or-split)
731+
<Plug>(fern-action-open:edit-or-vsplit)
732+
<Plug>(fern-action-open:edit-or-tabedit)
733+
Open a cursor node or marked nodes with |edit| command or fallback
734+
to a corresponding command.
735+
Note that when 'hidden' has set or 'bufhidden' is "hide", the |edit|
736+
command will never fails.
737+
738+
<Plug>(fern-action-open:above)
739+
<Plug>(fern-action-open:left)
740+
<Plug>(fern-action-open:below)
741+
<Plug>(fern-action-open:right)
742+
Open a cursor node or marked nodes on a corresponding direction
743+
from an "anchor" window.
744+
The command will be applied on the anchor window when invoked from a
745+
drawer style fern (|fern-glossary-anchor|.)
746+
747+
<Plug>(fern-action-open:top)
748+
<Plug>(fern-action-open:leftest)
749+
<Plug>(fern-action-open:bottom)
750+
<Plug>(fern-action-open:rightest)
751+
Open a cursor node or marked nodes on a edge of a corresponding
752+
direction from an "anchor" window.
753+
The command will be applied on the anchor window when invoked from a
754+
drawer style fern (|fern-glossary-anchor|.)
755+
756+
<Plug>(fern-action-open:side)
757+
Open a cursor node or marked nodes on the right side of the current
758+
window. The behavior is slightly different between a drawer style fern
759+
window and a split style fern window due to the presence of "anchor".
760+
761+
<Plug>(fern-action-open-or-enter)
762+
Invoke "open" action on a leaf node and "enter" action on a branch
763+
node.
764+
765+
<Plug>(fern-action-open-or-expand)
766+
Invoke "open" action on a leaf node and "expand" action on a branch
767+
node.
768+
769+
<Plug>(fern-action-open:edit)
770+
An alias to "open:edit-or-error" action. Users can overwrite this
771+
mapping to change the default behavior of "open:edit" action like:
772+
>
773+
nmap <buffer>
774+
\ <Plug>(fern-action-open:edit)
775+
\ <Plug>(fern-action-open:edit-or-tabedit)
776+
<
777+
<Plug>(fern-action-open)
778+
An alias to "open:edit" action. Users can overwrite this mapping to
779+
change the default behavior of "open" action like:
780+
>
781+
nmap <buffer>
782+
\ <Plug>(fern-action-open)
783+
\ <Plug>(fern-action-open:select)
784+
<
785+
<Plug>(fern-action-cancel)
786+
Cancel tree rendering.
787+
788+
<Plug>(fern-action-redraw)
789+
Redraw tree.
790+
791+
<Plug>(fern-wait)
792+
Wait a previous asynchronous action to continue asynchronous actions
793+
sequentially.
794+
Note this is not action.
795+
796+
-----------------------------------------------------------------------------
797+
FILE *fern-mapping-file*
798+
799+
The following mappings/actions are only available on file:// scheme.
800+
801+
<Plug>(fern-action-new-file)
802+
Open a prompt to ask a path and create a file of the input path from
803+
the path of a cursor node.
804+
Any intermediate directories of the destination will be created.
805+
806+
<Plug>(fern-action-new-dir)
807+
Open a prompt to ask a path and create a directory of the input path
808+
from the path of a cursor node.
809+
Any intermediate directories of the destination will be created.
810+
811+
<Plug>(fern-action-copy)
812+
Open a prompt to ask a path and copy a file/directory of the cursor
813+
node or marked node path(s) to the input path(s).
814+
Any intermediate directories of the destination will be created.
815+
The prompt will repeatedly open if multiple nodes has marked.
816+
817+
<Plug>(fern-action-move)
818+
Open a prompt to ask a path and move a file/directory of the cursor
819+
node or marked node path(s) to the input path(s).
820+
Any intermediate directories of the destination will be created.
821+
The prompt will repeatedly open if multiple nodes has marked.
822+
823+
<Plug>(fern-action-trash)
824+
Open a prompt to ask if fern can send the cursor node or marked nodes
825+
to the system trash-bin. It uses the following implementations to send
826+
the node(s) into system trash-bin.
827+
OS Requirement~
828+
macOS: osascript (OS builtin)
829+
Windows: PowerShell (OS builtin)
830+
Linux: trash-ci or gomi (Users need to install)
831+
https://github.com/andreafrancia/trash-cli
832+
https://github.com/b4b4r07/gomi
833+
Note that the action fails without removing the files/directories if
834+
no requirement exists on Linux.
835+
836+
<Plug>(fern-action-remove)
837+
Open a prompt to ask if fern can DELETE the cursor node or marked
838+
nodes. BE CAREFUL with this action while it DELETE the file/direcoty
839+
and users cannot restore (like "rm" in terminal.)
840+
841+
<Plug>(fern-action-cd:root)
842+
<Plug>(fern-action-lcd:root)
843+
<Plug>(fern-action-tcd:root)
844+
Invoke |:cd|, |:lcd|, or |:tcd| command on the path of the root node.
845+
846+
<Plug>(fern-action-cd:cursor)
847+
<Plug>(fern-action-lcd:cursor)
848+
<Plug>(fern-action-tcd:cursor)
849+
Invoke |:cd|, |:lcd|, or |:tcd| command on the path of a cursor node.
850+
851+
<Plug>(fern-action-cd)
852+
<Plug>(fern-action-lcd)
853+
<Plug>(fern-action-tcd)
854+
An alias to "cd:cursor", "lcd:cursor", and "tcd:cursor" action.
855+
Users can overwrite this mapping to change the default behavior like:
856+
>
857+
nmap <buffer>
858+
\ <Plug>(fern-action-cd)
859+
\ <Plug>(fern-action-cd:root)
860+
<
861+
<Plug>(fern-action-clipboard-copy)
862+
Copy a cursor node or marked nodes into an internal clipboard.
863+
Actual copy happens when users paste the nodes with "clipboard-paste"
864+
action.
865+
Note that this action has NO-relation with the system clipboard.
866+
867+
<Plug>(fern-action-clipboard-move)
868+
Move a cursor node or marked nodes into an internal clipboard.
869+
Actual move happens when users paste the nodes with "clipboard-paste"
870+
action.
871+
Note that this action has NO-relation with the system clipboard.
872+
873+
<Plug>(fern-action-clipboard-paste)
874+
Paste copied/moved nodes on a cursor node. It does not clear the
875+
internal clipboard so users can copy -> paste -> paste -> ...
876+
Note that this action has NO-relation with the system clipboard.
877+
878+
<Plug>(fern-action-clipboard-clear)
879+
Clear the internal clipboard.
880+
Note that this action has NO-relation with the system clipboard.
881+
882+
<Plug>(fern-action-grep)
883+
Open a prompt to ask a grep pattern and execute grep command under the
884+
cursor node. It respects the value of 'grepprg' and 'grepformat'.
885+
886+
<Plug>(fern-action-rename:select)
887+
<Plug>(fern-action-rename:split)
888+
<Plug>(fern-action-rename:vsplit)
889+
<Plug>(fern-action-rename:tabedit)
890+
<Plug>(fern-action-rename:above)
891+
<Plug>(fern-action-rename:left)
892+
<Plug>(fern-action-rename:below)
893+
<Plug>(fern-action-rename:right)
894+
<Plug>(fern-action-rename:top)
895+
<Plug>(fern-action-rename:leftest)
896+
<Plug>(fern-action-rename:bottom)
897+
<Plug>(fern-action-rename:rightest)
898+
<Plug>(fern-action-rename:edit-or-error)
899+
<Plug>(fern-action-rename:edit-or-split)
900+
<Plug>(fern-action-rename:edit-or-vsplit)
901+
<Plug>(fern-action-rename:edit-or-tabedit)
902+
<Plug>(fern-action-rename:edit)
903+
<Plug>(fern-action-rename:side)
904+
<Plug>(fern-action-rename)
905+
Open "renamer" (|fern-glossary-renamer|) for a cursor node or marked
906+
nodes in similar manners of global "open" actions.
907+
908+
<Plug>(fern-action-open:system)
909+
Open a cursor node or marked nodes on a default program of the system.
910+
For example, a cursor node points a PDF file, an application "Preview"
911+
will open that file in macOS.
912+
913+
<Plug>(fern-action-terminal:select)
914+
<Plug>(fern-action-terminal:split)
915+
<Plug>(fern-action-terminal:vsplit)
916+
<Plug>(fern-action-terminal:tabedit)
917+
<Plug>(fern-action-terminal:above)
918+
<Plug>(fern-action-terminal:left)
919+
<Plug>(fern-action-terminal:below)
920+
<Plug>(fern-action-terminal:right)
921+
<Plug>(fern-action-terminal:top)
922+
<Plug>(fern-action-terminal:leftest)
923+
<Plug>(fern-action-terminal:bottom)
924+
<Plug>(fern-action-terminal:rightest)
925+
<Plug>(fern-action-terminal:edit-or-error)
926+
<Plug>(fern-action-terminal:edit-or-split)
927+
<Plug>(fern-action-terminal:edit-or-vsplit)
928+
<Plug>(fern-action-terminal:edit-or-tabedit)
929+
<Plug>(fern-action-terminal:edit)
930+
<Plug>(fern-action-terminal:side)
931+
<Plug>(fern-action-terminal)
932+
Open terminal window(s) on or on parent of a cursor node or marked
933+
nodes in similar manners of global "open" actions.
934+
935+
-----------------------------------------------------------------------------
936+
DICT *fern-mapping-dict*
937+
938+
The following mappings/actions are only available on dict:// scheme.
939+
940+
TBW
941+
942+
943+
=============================================================================
944+
GLOSSARY *fern-glossary*
945+
946+
*fern-glossary-anchor*
947+
"anchor" A nearest suitable window from a drawer style fern
948+
window. "suitable" window is a window which is
949+
1. not quickfix window
950+
2. not location-list window
951+
3. not 'winfixwidth'
952+
4. not 'winfixheight'
953+
5. not 'previewwindow'
954+
Usually a right window by the drawer become "anchor".
955+
956+
*fern-glossary-renamer*
957+
"renamer" A special buffer which lists paths. Users can modify
958+
the paths and save. Once user save the content with
959+
|:write| command, corresponding rename process will
960+
invokes (e.g. file/directory rename on file:// scheme)
961+
962+
*fern-glossary-window-selector*
963+
"window selector" A special prompt to select window to open a node.
964+
Once user hit a window indicator displayed under each
965+
window, a content of the node will be opened at that
966+
window.
967+
968+
634969
=============================================================================
635970
CHANGELOG *fern-changelog*
636971

0 commit comments

Comments
 (0)