MacDownApp / macdown

Open source Markdown editor for macOS.
https://macdown.uranusjr.com/
9.45k stars 1.09k forks source link

Need Help about Keyboard shortcut #734

Closed leonreader closed 7 years ago

leonreader commented 7 years ago

Great app! I need some instructions about keyboard shortcuts.

As many editor, MacDown uses shortcuts with autocompletion, such as cmd+B means Bold, but there is a problem. when users entered the contents, they should use arrow key to move the cursor,which means they have to move fingers out of keyboard input area. it's very annoying for me. now I use ctrl+e or ctrl+f. Is there a elegant way to solve this problem?

I suggest that add an option about the keyboard shortcut that only input half of marking character.

sorry for bothering you and my poor English.

FranklinYu commented 7 years ago

Do you mean a keyboard shortcut to enter * and **? Not sure about **, but a short cut for something you can do with Shift + 8 looks like an overkill to me. (A shortcut for shortcut? Seriously?)

leonreader commented 7 years ago

sorry, Hotkey maybe more accurate. When I press cmd+B, there will be four * appear on the screen with cursor on the center, waiting for inputing content. After I finish inputing bold content, in order to enter other content, I have to use arrow key to move cursor, two times for two * in this case, which means my finger should leave keyboard input area.
How to avoid it? That is my question.

Some editors use a different method. At first, their hotkey feature like MacDown, but when you input content and press the same hotkey again, the cursor will automatically jump to the end of mark label.

As for my suggestion, I mean that press hotkey once input half mark label. For example, press cmd+B to enter two *, when I finish entering content, I can press cmd+B again to enclose the bold mark. shortcut for one * is not a good idea, but other character, such as "~>`", will be difficult for Chinese.

FranklinYu commented 7 years ago

Then I think I did understand you question.

In most Chinese input method one can get backtick (`) with a single keystroke. For strikethrough with ~ and blockquote with >, it may help some, but overall this feature doesn't save huge user's time. I'll leave it as a proposed feature, but can't guarantee priority. (@uranusjr may even think this is a "won't fix".)

Note: by "keyboard input area" you probably meant "alphabet area" since arrow keys are also for keyboard inputs.

uranusjr commented 7 years ago

Some editors solve this problem by contextually converting input to skip characters. For example, say you have this

foo(bar(rex()))

and have the cursor between rex( and ), pressing ) would move the cursor to the right instead of inputting and extra ), since the editor “knows” there are already enough )s, and what you actually want to do. MacDown already does this to (), [], and {}. Maybe we can make the editor even smarter to detect pairing * (and others). This would be difficult, but I think it’s possible.

But on the other hand, isn’t this solvable by not using hotkeys? All the ⌘B hotkey does is input two pairs of *s and put the cursor in the middle; if you want a streamlined input, you can just turn off autocompletion, and type out **your content** directly, without using the arrow keys. What prevents this from being the solution?

FranklinYu commented 7 years ago

@uranusjr Yes, for example I never use any hotkey for formatting; for me typing them out is way easier than learning all the hotkeys. I was just trying to show some respect to those hotkey-holic users.

leonreader commented 7 years ago

Thanks a lot for your replies. I am also not a hotkey lover. But as you know, I am a Chinese, and the mark characters, ~>_, are different. ~》——, so I have to switch between Chinese and English. English users may not have that problem, they can type any characters directly. Hotkey is a good solution for me. Moving fingers from alphabet area to arrows may be an interruption, but it is more convenient. Hope your guys make it great!

FranklinYu commented 7 years ago

You may want to consider a new input method. The one I am using allows me to switch to "English mode" with a keystroke of Shift. I assume that you need to mix Chinese with English punctuations frequently, not only in MacDown, so switching to a better input method will do you more good.

I assume that you are using the native input method on macOS, which annoys me from time to time. Sogou (easy solution) or Rime (open source) may be a better choice.

By the way, I am also a Chinese.

niklasberglund commented 7 years ago

The hotkey for "Select next source in Input menu" is very useful for switching between languages when using the built in input methods. I've set it to +Return. Can be changed in System preferences - Keyboard - Shortcuts - Input Sources.

leonreader commented 7 years ago

I got your point, thank you! I should not pay lot attention to this question. In original Mac keyboard layout, Cap Lock is the switch key, and is more convenient than shift or cmd+return. Now I have two solution:

  1. Using a switch key to switch between different input source.
  2. Using Mac native keyboard shortcuts, such as ctrl+f to move forward a character.

Through this discussion, I practice my English again, it is also a gift. Your work will be highly appreciated!