AutoYADM commit: 2025-05-12 03:31:08
This commit is contained in:
parent
c6543d13f4
commit
e03638a692
2 changed files with 13 additions and 25 deletions
|
@ -1,25 +1,7 @@
|
||||||
# 1. Find actual visual column width of content area
|
# arg is either "up" or "down"
|
||||||
# 2. Parse current cursor position and buffer line content
|
|
||||||
# 3. Split the logical line into chunks based on wrap width
|
|
||||||
# 4. Move cursor to the same column offset on the wrapped line
|
|
||||||
|
|
||||||
define-command visual-vertical -params 1 %{
|
define-command visual-vertical -params 1 %{
|
||||||
execute-keys %sh{
|
execute-keys %sh{
|
||||||
line="$kak_cursor_line"
|
distance=$($kak_config/scripts/nav.py "$kak_session" "$kak_cursor_line" "$kak_cursor_column" "$kak_window_width" "$kak_buf_line_count" "$kak_buffile" "$1")
|
||||||
col="$kak_cursor_column"
|
|
||||||
width="$kak_window_width"
|
|
||||||
count="$kak_buf_line_count"
|
|
||||||
path="$kak_buffile"
|
|
||||||
session="$kak_session"
|
|
||||||
distance=$($kak_config/scripts/nav.py "$session" "$line" "$col" "$width" "$count" "$path" "$1")
|
|
||||||
echo "$distance"
|
echo "$distance"
|
||||||
# TODO: figure out how to jump to this column?
|
|
||||||
} %sh{
|
|
||||||
if [ "$1" = "up" ]; then
|
|
||||||
echo h
|
|
||||||
else
|
|
||||||
echo l
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# TODO: works great when going down, however there are problem
|
||||||
|
# with going UP if the line above is also wrapped
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
# import subprocess
|
|
||||||
|
|
||||||
session_id = sys.argv[1]
|
session_id = sys.argv[1]
|
||||||
line_n = int(sys.argv[2])
|
line_n = int(sys.argv[2])
|
||||||
|
@ -28,6 +30,10 @@ if 0 <= new_visual_row < len(chunks):
|
||||||
new_col = min(visual_col, len(target_chunk) - 1)
|
new_col = min(visual_col, len(target_chunk) - 1)
|
||||||
new_abs_col = new_visual_row * wrap_width + new_col
|
new_abs_col = new_visual_row * wrap_width + new_col
|
||||||
diff = abs(new_abs_col - col)
|
diff = abs(new_abs_col - col)
|
||||||
print(diff)
|
key = "h" if direction == "up" else "l"
|
||||||
# _ = subprocess.run(args=["kak", "-c"])
|
print(f"{diff}{key}")
|
||||||
|
else:
|
||||||
|
print(
|
||||||
|
"j" if direction == "down" else "k"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue