vim不是用curses画得吗

Vim、Emacs配置和使用
回复
28hua
帖子: 8
注册时间: 2013-06-30 22:26
系统: Archlinux
联系:

vim不是用curses画得吗

#1

帖子 28hua » 2013-12-31 22:50

源码目录下查找常用的curses库函数都没有找到,vim是用什么绘的界面
终端下绘界面不用curses库还有别的选择吗
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim不是用curses画得吗

#2

帖子 lilydjwg » 2014-01-01 0:34

看看 screen.c?Vim 的 Linux 版是有链接 ncurses 的。GUI 版和 Windows 控制台版是自己画的。
28hua
帖子: 8
注册时间: 2013-06-30 22:26
系统: Archlinux
联系:

Re: vim不是用curses画得吗

#3

帖子 28hua » 2014-01-01 13:34

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

代码: 全选

$ find .   -type f -exec grep -nH 'initscr' {} \; 
这样用挺对的吧
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim不是用curses画得吗

#4

帖子 lilydjwg » 2014-01-01 19:34

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]
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: vim不是用curses画得吗

#5

帖子 eexpress » 2014-01-02 10:46

应该不会使用tputs这样的。
老牌软件自己画,不调用库,很正常啊。
● 鸣学
28hua
帖子: 8
注册时间: 2013-06-30 22:26
系统: Archlinux
联系:

Re: vim不是用curses画得吗

#6

帖子 28hua » 2014-01-02 11:53

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]
谢谢仙子,您这一行脚本好帅哦
28hua
帖子: 8
注册时间: 2013-06-30 22:26
系统: Archlinux
联系:

Re: vim不是用curses画得吗

#7

帖子 28hua » 2014-01-02 12:01

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.
回复