Skip to content

Commit 74e0708

Browse files
Add range selection ability on list contexts (#3207)
- **PR Description** Issue: #3196 This PR adds the ability to select a range of items in list contexts. It does this in two ways: * Sticky range select: like what we already have in the staging view, you press 'v' to toggle range select and then use up/down keys to extend the range * Non-sticky range select: rather than explicitly toggling this on/off, you use shift+up/down to extend the range The PR adds the ability to range select in all list contexts, but it's up to individual actions to opt-in to supporting a range. This PR only supports it for copying a range of commits for cherry-picking. We can add more support iteratively so that we're not merging a single giant PR. For all actions requiring selection of a single-item, an error will be shown if a range is selected. Other use cases we want to support in the near future: * marking commits as pick/drop/fixup/squash/etc when mid-rebase * fixup/squash/drop when outside rebase * moving commits up/down (in or out of rebase) * staging/unstaging multiple files * discarding multiple files ## Updated keybindings Because the 'v' binding is now globally dedicated to toggling range select, I've changed the cherry-pick copy/paste keys from 'c' and 'v' to 'shift+C' and 'shift+V' respectively. I've also nullified the 'v' keybinding on the 'view divergence from upstream' option in the upstream options menu (conveniently it was the first option in the menu so you can press enter on it). ## Standardised range select display As a bonus, this PR standardises how we display a range select. We already had range select support in the patch explorer view and merge conflicts view, but they were directly rendering the highlighted selection (i.e. blue background colour) in the content written to the view, rather than tell the view which lines were selected and have the view highlight them itself. A convenient benefit here is that now the entire line is highlighted, including trailing space, rather than just the content of the line. Another convenient benefit is that our integration tests can now easily ask the view which lines are selected, rather than depending on the specific context, because the view keeps track of it. I've removed the selectedRangeBgColor config option because selectedLineBgColor should be fine. I don't see the need for two options, but tell me if you think otherwise. Also, another thing we're standardising on: hitting escape will cancel the range select, which in the staging/patch-building views means if you're selecting a range, you'll need to hit escape twice to exit out of the view. For consistency, we're also applying this logic if you have a hunk selected. I personally would much prefer this and have several times accidentally exited out of the view when trying to cancel a range select by pressing escape. In lazygit in general, 'escape' means 'exit out of the innermost mode' and I would consider range select to be a kind of mode. ## Sticky vs non-sticky range interaction Here's the state machine that explains how the sticky and non-sticky range select modes interact. Although users will typically pick one or the other, it's important to be clear on what the logic is if you swap between them: ``` (no range, press 'v') -> sticky range (no range, press arrow) -> no range (no range, press shift+arrow) -> nonsticky range (sticky range, press 'v') -> no range (sticky range, press arrow) -> sticky range (sticky range, press shift+arrow) -> nonsticky range (nonsticky range, press 'v') -> no range (nonsticky range, press arrow) -> no range (nonsticky range, press shift+arrow) -> nonsticky range ``` Also if you press escape in either range mode, it cancels the range select. ## Some implementation details * when the action involves toggling e.g. toggling cherry-pick copy or toggling staged, we decide what to do based on the selection: for example with staging: if there are any unstaged changes in the selection, we'll stage everything, otherwise we unstage everything. This is the logic we already had when staging individual directories. * we retain range selection if a view loses focus * where we previously set SetSelectedLineIdx all over the place (e.g. setting selected line idx to 0 when checking out a branch) we're now using SetSelection which also resets the range select. There are only a couple of places where we would still want to use SetSelectedLineIdx (e.g. when the user moves up/down a page, because they would want to retain range select in that case) - **Please check if the PR fulfills these requirements** * [x] Cheatsheets are up-to-date (run `go generate ./...`) * [x] Code has been formatted (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#code-formatting)) * [ ] Tests have been added/updated (see [here](https://github.com/jesseduffield/lazygit/blob/master/pkg/integration/README.md) for the integration test guide) * [x] Text is internationalised (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#internationalisation)) * [x] Docs (specifically `docs/Config.md`) have been updated if necessary * [ ] You've read through your own file changes for silly mistakes etc <!-- Be sure to name your PR with an imperative e.g. 'Add worktrees view' see https://github.com/jesseduffield/lazygit/releases/tag/v0.40.0 for examples -->
2 parents 8a94663 + ab3004b commit 74e0708

File tree

131 files changed

+2010
-1402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+2010
-1402
lines changed

.vscode/launch.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
],
1414
"hideSystemGoroutines": true,
1515
"console": "integratedTerminal",
16-
"presentation": {
17-
"hidden": true
18-
}
1916
},
2017
{
2118
"name": "Tail Lazygit logs",
@@ -28,9 +25,6 @@
2825
"--use-config-file=${workspaceFolder}/.vscode/debugger_config.yml"
2926
],
3027
"console": "integratedTerminal",
31-
"presentation": {
32-
"hidden": true
33-
}
3428
},
3529
{
3630
"name": "Attach to a running Lazygit",

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ You can also perform any these actions as a once-off (e.g. pressing `s` on a com
122122

123123
### Cherry-pick
124124

125-
Press `c` on a commit to copy it and press `v` to paste (cherry-pick) it.
125+
Press `shift+c` on a commit to copy it and press `shift+v` to paste (cherry-pick) it.
126126

127127
![cherry_pick](../assets/demo/cherry_pick-compressed.gif)
128128

docs/Config.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@ gui:
5757
- blue
5858
selectedLineBgColor:
5959
- blue # set to `default` to have no background colour
60-
selectedRangeBgColor:
61-
- blue
6260
cherryPickedCommitBgColor:
6361
- cyan
6462
cherryPickedCommitFgColor:
@@ -201,6 +199,9 @@ keybinding:
201199
toggleWhitespaceInDiffView: '<c-w>'
202200
increaseContextInDiffView: '}'
203201
decreaseContextInDiffView: '{'
202+
toggleRangeSelect: 'v'
203+
rangeSelectUp: '<s-up>'
204+
rangeSelectDown: '<s-down>'
204205
status:
205206
checkForUpdate: 'u'
206207
recentRepos: '<enter>'
@@ -248,9 +249,8 @@ keybinding:
248249
amendToCommit: 'A'
249250
pickCommit: 'p' # pick commit (when mid-rebase)
250251
revertCommit: 't'
251-
cherryPickCopy: 'c'
252-
cherryPickCopyRange: 'C'
253-
pasteCommits: 'v'
252+
cherryPickCopy: 'C'
253+
pasteCommits: 'V'
254254
tagCommit: 'T'
255255
checkoutCommit: '<space>'
256256
resetCherryPick: '<c-R>'
@@ -263,8 +263,6 @@ keybinding:
263263
commitFiles:
264264
checkoutCommitFile: 'c'
265265
main:
266-
toggleDragSelect: 'v'
267-
toggleDragSelect-alt: 'V'
268266
toggleSelectHunk: 'a'
269267
pickBothHunks: 'b'
270268
submodules:
@@ -389,15 +387,13 @@ The available attributes are:
389387

390388
## Highlighting the selected line
391389

392-
If you don't like the default behaviour of highlighting the selected line with a blue background, you can use the `selectedLineBgColor` and `selectedRangeBgColor` keys to customise the behaviour. If you just want to embolden the selected line (this was the original default), you can do the following:
390+
If you don't like the default behaviour of highlighting the selected line with a blue background, you can use the `selectedLineBgColor` key to customise the behaviour. If you just want to embolden the selected line (this was the original default), you can do the following:
393391

394392
```yaml
395393
gui:
396394
theme:
397395
selectedLineBgColor:
398396
- default
399-
selectedRangeBgColor:
400-
- default
401397
```
402398

403399
You can also use the reverse attribute like so:
@@ -407,8 +403,6 @@ gui:
407403
theme:
408404
selectedLineBgColor:
409405
- reverse
410-
selectedRangeBgColor:
411-
- reverse
412406
```
413407

414408
## Custom Author Color

docs/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
* [Configuration](./Config.md).
44
* [Custom Commands](./Custom_Command_Keybindings.md)
55
* [Custom Pagers](./Custom_Pagers.md)
6+
* [Dev docs](./dev)
67
* [Keybindings](./keybindings)
78
* [Undo/Redo](./Undoing.md)
9+
* [Range Select](./Range_Select.md)
810
* [Searching/Filtering](./Searching.md)
911
* [Stacked Branches](./Stacked_Branches.md)
10-
* [Dev docs](./dev)

docs/Range_Select.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Range Select
2+
3+
Some actions can be performed on a range of contiguous items. For example:
4+
* staging multiple files at once
5+
* squashing multiple commits at once
6+
* copying (for cherry-pick) multiple commits at once
7+
8+
There are two ways to select a range of items:
9+
1. Sticky range select: Press 'v' to toggle range select, then expand the selection using the up/down arrow key. To reset the selection, press 'v' again.
10+
2. Non-sticky range select: Press shift+up or shift+down to expand the selection. To reset the selection, press up/down without shift.
11+
12+
The sticky option will be more familiar to vim users, and the second option will feel more natural to users who aren't used to doing things in a modal way.
13+
14+
In order to perform an action on a range of items, simply press the normal key for that action. If the action only works on individual items, it will raise an error. This is a new feature and the plan is to incrementally support range select for more and more actions. If there is an action you would like to support range select which currently does not, please raise an issue in the repo.

docs/dev/Codebase_Guide.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
* `pkg/gui/gui_common.go`: defines gui-specific methods that all controllers and helpers have access to
5959
* `pkg/i18n/english.go`: defines the set of i18n strings and their English values
6060
* `pkg/gui/controllers/helpers/refresh_helper.go`: manages refreshing of models. The refresh helper is typically invoked at the end of an action to re-load affected models from git (e.g. re-load branches after doing a git pull)
61+
* `pkg/gui/controllers/quit_actions.go`: contains code that runs when you hit 'escape' on a view (assuming the view doesn't define its own escape handler)
6162
* `vendor/github.com/jesseduffield/gocui/gui.go`: defines the gocui gui struct
6263
* `vendor/github.com/jesseduffield/gocui/view.go`: defines the gocui view struct
6364

docs/keybindings/Keybindings_en.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
3737
<kbd>.</kbd>: Next page
3838
<kbd>&lt;</kbd>: Scroll to top
3939
<kbd>&gt;</kbd>: Scroll to bottom
40+
<kbd>v</kbd>: Toggle range select
41+
<kbd>&lt;s-down&gt;</kbd>: Range select down
42+
<kbd>&lt;s-up&gt;</kbd>: Range select up
4043
<kbd>/</kbd>: Search the current view by text
4144
<kbd>H</kbd>: Scroll left
4245
<kbd>L</kbd>: Scroll right
@@ -85,7 +88,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
8588
<kbd>S</kbd>: Squash all 'fixup!' commits above selected commit (autosquash)
8689
<kbd>&lt;c-j&gt;</kbd>: Move commit down one
8790
<kbd>&lt;c-k&gt;</kbd>: Move commit up one
88-
<kbd>v</kbd>: Paste commits (cherry-pick)
91+
<kbd>V</kbd>: Paste commits (cherry-pick)
8992
<kbd>B</kbd>: Mark commit as base commit for rebase
9093
<kbd>A</kbd>: Amend commit with staged changes
9194
<kbd>a</kbd>: Set/Reset commit author
@@ -98,8 +101,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
98101
<kbd>o</kbd>: Open commit in browser
99102
<kbd>n</kbd>: Create new branch off of commit
100103
<kbd>g</kbd>: View reset options
101-
<kbd>c</kbd>: Copy commit (cherry-pick)
102-
<kbd>C</kbd>: Copy commit range (cherry-pick)
104+
<kbd>C</kbd>: Copy commit (cherry-pick)
103105
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
104106
<kbd>&lt;enter&gt;</kbd>: View selected item's files
105107
<kbd>/</kbd>: Search the current view by text
@@ -196,8 +198,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
196198
<pre>
197199
<kbd>&lt;left&gt;</kbd>: Select previous hunk
198200
<kbd>&lt;right&gt;</kbd>: Select next hunk
199-
<kbd>v</kbd>: Toggle drag select
200-
<kbd>V</kbd>: Toggle drag select
201+
<kbd>v</kbd>: Toggle range select
201202
<kbd>a</kbd>: Toggle select hunk
202203
<kbd>&lt;c-o&gt;</kbd>: Copy the selected text to the clipboard
203204
<kbd>o</kbd>: Open file
@@ -212,8 +213,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
212213
<pre>
213214
<kbd>&lt;left&gt;</kbd>: Select previous hunk
214215
<kbd>&lt;right&gt;</kbd>: Select next hunk
215-
<kbd>v</kbd>: Toggle drag select
216-
<kbd>V</kbd>: Toggle drag select
216+
<kbd>v</kbd>: Toggle range select
217217
<kbd>a</kbd>: Toggle select hunk
218218
<kbd>&lt;c-o&gt;</kbd>: Copy the selected text to the clipboard
219219
<kbd>o</kbd>: Open file
@@ -247,8 +247,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
247247
<kbd>o</kbd>: Open commit in browser
248248
<kbd>n</kbd>: Create new branch off of commit
249249
<kbd>g</kbd>: View reset options
250-
<kbd>c</kbd>: Copy commit (cherry-pick)
251-
<kbd>C</kbd>: Copy commit range (cherry-pick)
250+
<kbd>C</kbd>: Copy commit (cherry-pick)
252251
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (copied) commits selection
253252
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
254253
<kbd>&lt;enter&gt;</kbd>: View commits
@@ -315,8 +314,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
315314
<kbd>o</kbd>: Open commit in browser
316315
<kbd>n</kbd>: Create new branch off of commit
317316
<kbd>g</kbd>: View reset options
318-
<kbd>c</kbd>: Copy commit (cherry-pick)
319-
<kbd>C</kbd>: Copy commit range (cherry-pick)
317+
<kbd>C</kbd>: Copy commit (cherry-pick)
320318
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (copied) commits selection
321319
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
322320
<kbd>&lt;enter&gt;</kbd>: View selected item's files

docs/keybindings/Keybindings_ja.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
3737
<kbd>.</kbd>: 次のページ
3838
<kbd>&lt;</kbd>: 最上部までスクロール
3939
<kbd>&gt;</kbd>: 最下部までスクロール
40+
<kbd>v</kbd>: 範囲選択を切り替え
41+
<kbd>&lt;s-down&gt;</kbd>: Range select down
42+
<kbd>&lt;s-up&gt;</kbd>: Range select up
4043
<kbd>/</kbd>: 検索を開始
4144
<kbd>H</kbd>: 左スクロール
4245
<kbd>L</kbd>: 右スクロール
@@ -67,8 +70,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
6770
<kbd>o</kbd>: ブラウザでコミットを開く
6871
<kbd>n</kbd>: コミットにブランチを作成
6972
<kbd>g</kbd>: View reset options
70-
<kbd>c</kbd>: コミットをコピー (cherry-pick)
71-
<kbd>C</kbd>: コミットを範囲コピー (cherry-pick)
73+
<kbd>C</kbd>: コミットをコピー (cherry-pick)
7274
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (copied) commits selection
7375
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
7476
<kbd>&lt;enter&gt;</kbd>: View selected item's files
@@ -104,7 +106,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
104106
<kbd>S</kbd>: Squash all 'fixup!' commits above selected commit (autosquash)
105107
<kbd>&lt;c-j&gt;</kbd>: コミットを1つ下に移動
106108
<kbd>&lt;c-k&gt;</kbd>: コミットを1つ上に移動
107-
<kbd>v</kbd>: コミットを貼り付け (cherry-pick)
109+
<kbd>V</kbd>: コミットを貼り付け (cherry-pick)
108110
<kbd>B</kbd>: Mark commit as base commit for rebase
109111
<kbd>A</kbd>: ステージされた変更でamendコミット
110112
<kbd>a</kbd>: Set/Reset commit author
@@ -117,8 +119,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
117119
<kbd>o</kbd>: ブラウザでコミットを開く
118120
<kbd>n</kbd>: コミットにブランチを作成
119121
<kbd>g</kbd>: View reset options
120-
<kbd>c</kbd>: コミットをコピー (cherry-pick)
121-
<kbd>C</kbd>: コミットを範囲コピー (cherry-pick)
122+
<kbd>C</kbd>: コミットをコピー (cherry-pick)
122123
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
123124
<kbd>&lt;enter&gt;</kbd>: View selected item's files
124125
<kbd>/</kbd>: 検索を開始
@@ -270,7 +271,6 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
270271
<kbd>&lt;left&gt;</kbd>: 前のhunkを選択
271272
<kbd>&lt;right&gt;</kbd>: 次のhunkを選択
272273
<kbd>v</kbd>: 範囲選択を切り替え
273-
<kbd>V</kbd>: 範囲選択を切り替え
274274
<kbd>a</kbd>: Hunk選択を切り替え
275275
<kbd>&lt;c-o&gt;</kbd>: 選択されたテキストをクリップボードにコピー
276276
<kbd>o</kbd>: ファイルを開く
@@ -286,7 +286,6 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
286286
<kbd>&lt;left&gt;</kbd>: 前のhunkを選択
287287
<kbd>&lt;right&gt;</kbd>: 次のhunkを選択
288288
<kbd>v</kbd>: 範囲選択を切り替え
289-
<kbd>V</kbd>: 範囲選択を切り替え
290289
<kbd>a</kbd>: Hunk選択を切り替え
291290
<kbd>&lt;c-o&gt;</kbd>: 選択されたテキストをクリップボードにコピー
292291
<kbd>o</kbd>: ファイルを開く
@@ -347,8 +346,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
347346
<kbd>o</kbd>: ブラウザでコミットを開く
348347
<kbd>n</kbd>: コミットにブランチを作成
349348
<kbd>g</kbd>: View reset options
350-
<kbd>c</kbd>: コミットをコピー (cherry-pick)
351-
<kbd>C</kbd>: コミットを範囲コピー (cherry-pick)
349+
<kbd>C</kbd>: コミットをコピー (cherry-pick)
352350
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (copied) commits selection
353351
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
354352
<kbd>&lt;enter&gt;</kbd>: コミットを閲覧

docs/keybindings/Keybindings_ko.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
3737
<kbd>.</kbd>: 다음 페이지
3838
<kbd>&lt;</kbd>: 맨 위로 스크롤
3939
<kbd>&gt;</kbd>: 맨 아래로 스크롤
40+
<kbd>v</kbd>: 드래그 선택 전환
41+
<kbd>&lt;s-down&gt;</kbd>: Range select down
42+
<kbd>&lt;s-up&gt;</kbd>: Range select up
4043
<kbd>/</kbd>: 검색 시작
4144
<kbd>H</kbd>: 우 스크롤
4245
<kbd>L</kbd>: 좌 스크롤
@@ -54,8 +57,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
5457
<kbd>o</kbd>: 브라우저에서 커밋 열기
5558
<kbd>n</kbd>: 커밋에서 새 브랜치를 만듭니다.
5659
<kbd>g</kbd>: View reset options
57-
<kbd>c</kbd>: 커밋을 복사 (cherry-pick)
58-
<kbd>C</kbd>: 커밋을 범위로 복사 (cherry-pick)
60+
<kbd>C</kbd>: 커밋을 복사 (cherry-pick)
5961
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (copied) commits selection
6062
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
6163
<kbd>&lt;enter&gt;</kbd>: 커밋 보기
@@ -85,8 +87,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
8587
<kbd>o</kbd>: 브라우저에서 커밋 열기
8688
<kbd>n</kbd>: 커밋에서 새 브랜치를 만듭니다.
8789
<kbd>g</kbd>: View reset options
88-
<kbd>c</kbd>: 커밋을 복사 (cherry-pick)
89-
<kbd>C</kbd>: 커밋을 범위로 복사 (cherry-pick)
90+
<kbd>C</kbd>: 커밋을 복사 (cherry-pick)
9091
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (copied) commits selection
9192
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
9293
<kbd>&lt;enter&gt;</kbd>: View selected item's files
@@ -141,7 +142,6 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
141142
<kbd>&lt;left&gt;</kbd>: 이전 hunk를 선택
142143
<kbd>&lt;right&gt;</kbd>: 다음 hunk를 선택
143144
<kbd>v</kbd>: 드래그 선택 전환
144-
<kbd>V</kbd>: 드래그 선택 전환
145145
<kbd>a</kbd>: Toggle select hunk
146146
<kbd>&lt;c-o&gt;</kbd>: 선택한 텍스트를 클립보드에 복사
147147
<kbd>o</kbd>: 파일 닫기
@@ -157,7 +157,6 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
157157
<kbd>&lt;left&gt;</kbd>: 이전 hunk를 선택
158158
<kbd>&lt;right&gt;</kbd>: 다음 hunk를 선택
159159
<kbd>v</kbd>: 드래그 선택 전환
160-
<kbd>V</kbd>: 드래그 선택 전환
161160
<kbd>a</kbd>: Toggle select hunk
162161
<kbd>&lt;c-o&gt;</kbd>: 선택한 텍스트를 클립보드에 복사
163162
<kbd>o</kbd>: 파일 닫기
@@ -269,7 +268,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
269268
<kbd>S</kbd>: Squash all 'fixup!' commits above selected commit (autosquash)
270269
<kbd>&lt;c-j&gt;</kbd>: 커밋을 1개 아래로 이동
271270
<kbd>&lt;c-k&gt;</kbd>: 커밋을 1개 위로 이동
272-
<kbd>v</kbd>: 커밋을 붙여넣기 (cherry-pick)
271+
<kbd>V</kbd>: 커밋을 붙여넣기 (cherry-pick)
273272
<kbd>B</kbd>: Mark commit as base commit for rebase
274273
<kbd>A</kbd>: Amend commit with staged changes
275274
<kbd>a</kbd>: Set/Reset commit author
@@ -282,8 +281,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
282281
<kbd>o</kbd>: 브라우저에서 커밋 열기
283282
<kbd>n</kbd>: 커밋에서 새 브랜치를 만듭니다.
284283
<kbd>g</kbd>: View reset options
285-
<kbd>c</kbd>: 커밋을 복사 (cherry-pick)
286-
<kbd>C</kbd>: 커밋을 범위로 복사 (cherry-pick)
284+
<kbd>C</kbd>: 커밋을 복사 (cherry-pick)
287285
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
288286
<kbd>&lt;enter&gt;</kbd>: View selected item's files
289287
<kbd>/</kbd>: 검색 시작

docs/keybindings/Keybindings_nl.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
3737
<kbd>.</kbd>: Volgende pagina
3838
<kbd>&lt;</kbd>: Scroll naar boven
3939
<kbd>&gt;</kbd>: Scroll naar beneden
40+
<kbd>v</kbd>: Toggle drag selecteer
41+
<kbd>&lt;s-down&gt;</kbd>: Range select down
42+
<kbd>&lt;s-up&gt;</kbd>: Range select up
4043
<kbd>/</kbd>: Start met zoeken
4144
<kbd>H</kbd>: Scroll left
4245
<kbd>L</kbd>: Scroll right
@@ -148,7 +151,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
148151
<kbd>S</kbd>: Squash bovenstaande commits
149152
<kbd>&lt;c-j&gt;</kbd>: Verplaats commit 1 naar beneden
150153
<kbd>&lt;c-k&gt;</kbd>: Verplaats commit 1 naar boven
151-
<kbd>v</kbd>: Plak commits (cherry-pick)
154+
<kbd>V</kbd>: Plak commits (cherry-pick)
152155
<kbd>B</kbd>: Mark commit as base commit for rebase
153156
<kbd>A</kbd>: Wijzig commit met staged veranderingen
154157
<kbd>a</kbd>: Set/Reset commit author
@@ -161,8 +164,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
161164
<kbd>o</kbd>: Open commit in browser
162165
<kbd>n</kbd>: Creëer nieuwe branch van commit
163166
<kbd>g</kbd>: Bekijk reset opties
164-
<kbd>c</kbd>: Kopieer commit (cherry-pick)
165-
<kbd>C</kbd>: Kopieer commit reeks (cherry-pick)
167+
<kbd>C</kbd>: Kopieer commit (cherry-pick)
166168
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
167169
<kbd>&lt;enter&gt;</kbd>: Bekijk gecommite bestanden
168170
<kbd>/</kbd>: Start met zoeken
@@ -205,7 +207,6 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
205207
<kbd>&lt;left&gt;</kbd>: Selecteer de vorige hunk
206208
<kbd>&lt;right&gt;</kbd>: Selecteer de volgende hunk
207209
<kbd>v</kbd>: Toggle drag selecteer
208-
<kbd>V</kbd>: Toggle drag selecteer
209210
<kbd>a</kbd>: Toggle selecteer hunk
210211
<kbd>&lt;c-o&gt;</kbd>: Copy the selected text to the clipboard
211212
<kbd>o</kbd>: Open bestand
@@ -225,8 +226,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
225226
<kbd>o</kbd>: Open commit in browser
226227
<kbd>n</kbd>: Creëer nieuwe branch van commit
227228
<kbd>g</kbd>: Bekijk reset opties
228-
<kbd>c</kbd>: Kopieer commit (cherry-pick)
229-
<kbd>C</kbd>: Kopieer commit reeks (cherry-pick)
229+
<kbd>C</kbd>: Kopieer commit (cherry-pick)
230230
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (gekopieerde) commits selectie
231231
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
232232
<kbd>&lt;enter&gt;</kbd>: Bekijk commits
@@ -266,7 +266,6 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
266266
<kbd>&lt;left&gt;</kbd>: Selecteer de vorige hunk
267267
<kbd>&lt;right&gt;</kbd>: Selecteer de volgende hunk
268268
<kbd>v</kbd>: Toggle drag selecteer
269-
<kbd>V</kbd>: Toggle drag selecteer
270269
<kbd>a</kbd>: Toggle selecteer hunk
271270
<kbd>&lt;c-o&gt;</kbd>: Copy the selected text to the clipboard
272271
<kbd>o</kbd>: Open bestand
@@ -315,8 +314,7 @@ _Legend: `<c-b>` means ctrl+b, `<a-b>` means alt+b, `B` means shift+b_
315314
<kbd>o</kbd>: Open commit in browser
316315
<kbd>n</kbd>: Creëer nieuwe branch van commit
317316
<kbd>g</kbd>: Bekijk reset opties
318-
<kbd>c</kbd>: Kopieer commit (cherry-pick)
319-
<kbd>C</kbd>: Kopieer commit reeks (cherry-pick)
317+
<kbd>C</kbd>: Kopieer commit (cherry-pick)
320318
<kbd>&lt;c-r&gt;</kbd>: Reset cherry-picked (gekopieerde) commits selectie
321319
<kbd>&lt;c-t&gt;</kbd>: Open external diff tool (git difftool)
322320
<kbd>&lt;enter&gt;</kbd>: Bekijk gecommite bestanden

0 commit comments

Comments
 (0)