diff --git a/components.d.ts b/components.d.ts index f2c3146f..df0c9d25 100644 --- a/components.d.ts +++ b/components.d.ts @@ -126,25 +126,18 @@ declare module '@vue/runtime-core' { MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default'] MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] + NanoMemo: typeof import('./src/tools/nano-memo/nano-memo.vue')['default'] + 'NanoMemo.content': typeof import('./src/tools/nano-memo/nano-memo.content.md')['default'] NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] - NCode: typeof import('naive-ui')['NCode'] NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] NConfigProvider: typeof import('naive-ui')['NConfigProvider'] - NDivider: typeof import('naive-ui')['NDivider'] NEllipsis: typeof import('naive-ui')['NEllipsis'] - NFormItem: typeof import('naive-ui')['NFormItem'] - NGi: typeof import('naive-ui')['NGi'] - NGrid: typeof import('naive-ui')['NGrid'] NH1: typeof import('naive-ui')['NH1'] NH3: typeof import('naive-ui')['NH3'] NIcon: typeof import('naive-ui')['NIcon'] - NInputNumber: typeof import('naive-ui')['NInputNumber'] - NLabel: typeof import('naive-ui')['NLabel'] NLayout: typeof import('naive-ui')['NLayout'] NLayoutSider: typeof import('naive-ui')['NLayoutSider'] NMenu: typeof import('naive-ui')['NMenu'] - NScrollbar: typeof import('naive-ui')['NScrollbar'] - NSpin: typeof import('naive-ui')['NSpin'] NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default'] diff --git a/src/tools/index.ts b/src/tools/index.ts index aa861c93..c4ac7e73 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -6,6 +6,7 @@ import { tool as asciiTextDrawer } from './ascii-text-drawer'; import { tool as textToUnicode } from './text-to-unicode'; import { tool as safelinkDecoder } from './safelink-decoder'; +import { tool as nanoMemo } from './nano-memo'; import { tool as pdfSignatureChecker } from './pdf-signature-checker'; import { tool as numeronymGenerator } from './numeronym-generator'; import { tool as macAddressGenerator } from './mac-address-generator'; @@ -137,7 +138,6 @@ export const toolsByCategory: ToolCategory[] = [ { name: 'Development', components: [ - gitMemo, randomPortGenerator, crontabGenerator, jsonViewer, @@ -150,6 +150,13 @@ export const toolsByCategory: ToolCategory[] = [ yamlViewer, ], }, + { + name: 'CheatSheets', + components: [ + gitMemo, + nanoMemo, + ], + }, { name: 'Network', components: [ipv4SubnetCalculator, ipv4AddressConverter, ipv4RangeExpander, macAddressLookup, macAddressGenerator, ipv6UlaGenerator], diff --git a/src/tools/nano-memo/index.ts b/src/tools/nano-memo/index.ts new file mode 100644 index 00000000..c4960ff9 --- /dev/null +++ b/src/tools/nano-memo/index.ts @@ -0,0 +1,12 @@ +import { FileText } from '@vicons/tabler'; +import { defineTool } from '../tool'; + +export const tool = defineTool({ + name: 'Nano CheatSheet', + path: '/nano-memo', + description: 'Nano Editor Cheatsheet', + keywords: ['nano', 'memo', 'cheatsheet', 'sheet'], + component: () => import('./nano-memo.vue'), + icon: FileText, + createdAt: new Date('2024-04-20'), +}); diff --git a/src/tools/nano-memo/nano-memo.content.md b/src/tools/nano-memo/nano-memo.content.md new file mode 100644 index 00000000..9e6eccb0 --- /dev/null +++ b/src/tools/nano-memo/nano-memo.content.md @@ -0,0 +1,109 @@ +Overview of nano's shortcuts       +===================================== + +# The editor's keystrokes and their functions          + +## File handling** + +| Shortcut | Description | +|:--|:--| +| Ctrl+S | Save current file | +| Ctrl+O | Offer to write file ("Save as") | +| Ctrl+R | Insert a file into current one | +| Ctrl+X | Close buffer, exit from nano | + +## **Editing** + +| Shortcut | Description | +|:--|:--| +| Ctrl+K | Cut current line into cutbuffer | +| Alt+6 | Copy current line into cutbuffer | +| Ctrl+U | Paste contents of cutbuffer | +| Alt+T | Cut until end of buffer | +| Ctrl+\] | Complete current word | +| Alt+3 | Comment/uncomment line/region | +| Alt+U | Undo last action | +| Alt+E | Redo last undone action | + +## **Search and replace** + +| Shortcut | Description | +|:--|:--| +| Ctrl+Q | Start backward search | +| Ctrl+W | Start forward search | +| Alt+Q | Find next occurrence backward | +| Alt+W | Find next occurrence forward | +| Alt+R | Start a replacing session | + +## Deletion + +| Shortcut | Description | +|:--|:--| +| Ctrl+H | Delete character before cursor |       +| Ctrl+D | Delete character under cursor | +| Alt+Bsp | Delete word to the left | +| Ctrl+Del | Delete word to the right | +| Alt+Del | Delete current line | + +## Operations + +| Shortcut | Description | +|:--|:--| +| Ctrl+T | Execute some command | +| Ctrl+J | Justify paragraph or region | +| Alt+J | Justify entire buffer | +| Alt+B | Run a syntax check | +| Alt+F | Run a formatter/fixer/arranger | +| Alt+: | Start/stop recording of macro | +| Alt+; | Replay macro | + +## Moving around + +| Shortcut | Description | +|:--|:--| +| Ctrl+B | One character backward | +| Ctrl+F | One character forward | +| Ctrl+**←** | One word backward | +| Ctrl+**→** | One word forward | +| Ctrl+A | To start of line | +| Ctrl+E | To end of line | +| Ctrl+P | One line up | +| Ctrl+N | One line down | +| Ctrl+**↑** | To previous block | +| Ctrl+**↓** | To next block | +| Ctrl+Y | One page up | +| Ctrl+V | One page down | +| Alt+\\ | To top of buffer | +| Alt+/ | To end of buffer | + +## Special movement + +| Shortcut | Description | +|:--|:--| +| Alt+G | Go to specified line | +| Alt+\] | Go to complementary bracket | +| Alt+**↑** | Scroll viewport up | +| Alt+**↓** | Scroll viewport down | +| Alt+< | Switch to preceding buffer | +| Alt+> | Switch to succeeding buffer | + +## Information + +| Shortcut | Description | +|:--|:--| +| Ctrl+C | Report cursor position | +| Alt+D | Report line/word/character count | +| Ctrl+G | Display help text | + +## Various + +| Shortcut | Description | +|:--|:--| +| Alt+A | Turn the mark on/off | +| Tab | Indent marked region | +| Shift+Tab | Unindent marked region | +| Alt+V | Enter next keystroke verbatim | +| Alt+N | Turn line numbers on/off | +| Alt+P | Turn visible whitespace on/off | +| Alt+X | Hide or unhide the help lines | +| Ctrl+L | Refresh the screen | \ No newline at end of file diff --git a/src/tools/nano-memo/nano-memo.vue b/src/tools/nano-memo/nano-memo.vue new file mode 100644 index 00000000..db4711ea --- /dev/null +++ b/src/tools/nano-memo/nano-memo.vue @@ -0,0 +1,22 @@ + + + + +