分页: 1 / 1

vim不是用curses画得吗

发表于 : 2013-12-31 22:50
28hua
源码目录下查找常用的curses库函数都没有找到,vim是用什么绘的界面
终端下绘界面不用curses库还有别的选择吗

Re: vim不是用curses画得吗

发表于 : 2014-01-01 0:34
lilydjwg
看看 screen.c?Vim 的 Linux 版是有链接 ncurses 的。GUI 版和 Windows 控制台版是自己画的。

Re: vim不是用curses画得吗

发表于 : 2014-01-01 13:34
28hua
lilydjwg 写了:看看 screen.c?Vim 的 Linux 版是有链接 ncurses 的。GUI 版和 Windows 控制台版是自己画的。
我在src目录下搜索 initscr,refresh,endwin,noecho常见的curses函数都没有找到啊。

代码: 全选

$ find .   -type f -exec grep -nH 'initscr' {} \; 
这样用挺对的吧

Re: vim不是用curses画得吗

发表于 : 2014-01-01 19:34
lilydjwg
28hua 写了:
lilydjwg 写了:看看 screen.c?Vim 的 Linux 版是有链接 ncurses 的。GUI 版和 Windows 控制台版是自己画的。
我在src目录下搜索 initscr,refresh,endwin,noecho常见的curses函数都没有找到啊。

代码: 全选

$ find .   -type f -exec grep -nH 'initscr' {} \; 
这样用挺对的吧
1. 你不需要用 find
2. 没有这些高层函数挺正确的
[bash]
>>> comm -12 <(objdump -T /usr/lib/libncursesw.so.5 | awk '$4 == ".text" {print $7}' | sort) <(objdump -T =vim | awk '$3 == "*UND*" { print $5 }'|sort)

tgetent
tgetflag
tgetnum
tgetstr
tgoto
tputs
[/bash]

Re: vim不是用curses画得吗

发表于 : 2014-01-02 10:46
eexpress
应该不会使用tputs这样的。
老牌软件自己画,不调用库,很正常啊。

Re: vim不是用curses画得吗

发表于 : 2014-01-02 11:53
28hua
lilydjwg 写了: [bash]
>>> comm -12 <(objdump -T /usr/lib/libncursesw.so.5 | awk '$4 == ".text" {print $7}' | sort) <(objdump -T =vim | awk '$3 == "*UND*" { print $5 }'|sort)

tgetent
tgetflag
tgetnum
tgetstr
tgoto
tputs
[/bash]
谢谢仙子,您这一行脚本好帅哦

Re: vim不是用curses画得吗

发表于 : 2014-01-02 12:01
28hua
eexpress 写了:应该不会使用tputs这样的。
老牌软件自己画,不调用库,很正常啊。
也是啊,Vi 好像比 curses 还要老,维基上还有这么一句
The name "curses" is a pun on cursor optimization.[6] Sometimes it is incorrectly stated that curses was used by the vi editor. In fact the code in curses that optimizes moving the cursor from one place on the screen to another was borrowed from vi, which predated curses.