📄 misc.c
字号:
/* misc.c *//* Author: * Steve Kirkendall * 14407 SW Teal Blvd. #C * Beaverton, OR 97005 * kirkenda@cs.pdx.edu *//* This file contains functions which didn't seem happy anywhere else */#include "config.h"#include "vi.h"/* find a particular line & return a pointer to a copy of its text */char *fetchline(line) long line; /* line number of the line to fetch */{ int i; REG char *scan; /* used to search for the line in a BLK */ long l; /* line number counter */ static BLK buf; /* holds ONLY the selected line (as string) */ REG char *cpy; /* used while copying the line */ static long nextline; /* } These four variables are used */ static long chglevel; /* } to implement a shortcut when */ static char *nextscan; /* } consecutive lines are fetched */ static long nextlnum; /* } */ /* can we do a shortcut? */ if (changes == chglevel && line == nextline) { scan = nextscan; } else { /* scan lnum[] to determine which block its in */ for (i = 1; line > lnum[i]; i++) { } nextlnum = lnum[i]; /* fetch text of the block containing that line */ scan = blkget(i)->c; /* find the line in the block */ for (l = lnum[i - 1]; ++l < line; ) { while (*scan++ != '\n') { } } } /* copy it into a block by itself, with no newline */ for (cpy = buf.c; *scan != '\n'; ) { *cpy++ = *scan++; } *cpy = '\0'; /* maybe speed up the next call to fetchline() ? */ if (line < nextlnum) { nextline = line + 1; chglevel = changes; nextscan = scan + 1; } else { nextline = 0; } /* Calls to fetchline() interfere with calls to pfetch(). Make sure * that pfetch() resets itself on its next invocation. */ pchgs = 0L; /* Return a pointer to the line's text */ return buf.c;}/* error message from the regexp code */void regerror(txt) char *txt; /* an error message */{ msg("RE error: %s", txt);}/* This function is equivelent to the pfetch() macro */void pfetch(l) long l; /* line number of line to fetch */{ if(l != pline || changes != pchgs) { pline = (l); ptext = fetchline(pline); plen = strlen(ptext); pchgs = changes; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -