Skip to content

Commit b30ba05

Browse files
sanohiroclaude
andcommitted
feat: M-F/M-B (Alt+Shift+f/b) で選択しながら単語移動を追加
- M-F: 選択しながら次の単語へ移動 - M-B: 選択しながら前の単語へ移動 - M-f/M-b (小文字): 選択を解除して移動 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 75c2fd8 commit b30ba05

4 files changed

Lines changed: 21 additions & 1 deletion

File tree

build.zig.zon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.{
22
.name = .ze,
3-
.version = "0.7.5",
3+
.version = "0.7.6",
44
.fingerprint = 0xa9d116540b6957d2,
55
.paths = .{""},
66
}

src/commands/movement.zig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,18 @@ pub fn selectPageDown(e: *Editor) !void {
381381
pageScroll(e, .down);
382382
}
383383

384+
/// M-F (Alt+Shift+f): 選択しながら次の単語へ移動
385+
pub fn selectForwardWord(e: *Editor) !void {
386+
ensureMark(e);
387+
try forwardWord(e);
388+
}
389+
390+
/// M-B (Alt+Shift+b): 選択しながら前の単語へ移動
391+
pub fn selectBackwardWord(e: *Editor) !void {
392+
ensureMark(e);
393+
try backwardWord(e);
394+
}
395+
384396
// ========================================
385397
// ヘルパー関数
386398
// ========================================

src/editor.zig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2207,6 +2207,10 @@ pub const Editor = struct {
22072207
}
22082208
},
22092209
.alt => |c| {
2210+
// 小文字のM-f, M-bは選択解除(大文字のM-F, M-Bは選択維持)
2211+
if (c == 'f' or c == 'b') {
2212+
self.getCurrentWindow().mark_pos = null;
2213+
}
22102214
// keymapから検索
22112215
if (self.keymap.findAlt(c)) |handler| {
22122216
try handler(self);

src/keymap.zig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ pub const Keymap = struct {
177177
try self.bindAlt('b', movement.backwardWord);
178178
try self.bindAlt('d', edit.deleteWord);
179179

180+
// 選択しながら単語移動 (Alt+Shift+f/b = M-F/B)
181+
try self.bindAlt('F', movement.selectForwardWord);
182+
try self.bindAlt('B', movement.selectBackwardWord);
183+
180184
// コピー
181185
try self.bindAlt('w', edit.copyRegion);
182186

0 commit comments

Comments
 (0)