""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " SAVE THE CURRENT STATE OF THE "saveregexp" OPTION local nosaveregexp """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " TAKE A GUESS AT THE BUFFER'S PREFERRED DISPLAY MODE if !userprotocol then { if knownsyntax(filename) then set! bufdisplay=syntax if os=="unix" && buflines >= 1 then { try 1s/\V^#! *[^ ]*\/\([^ ]\+\).*/set! bufdisplay="syntax \1"/x if bufdisplay<<11=="syntax perl" then set! bufdisplay="syntax perl" if bufdisplay<<12=="syntax tclsh" then set! bufdisplay="syntax tcl" } if !newfile then { if readeol=="binary" && bufdisplay=="normal" && (partiallastline || !binary) then set! bufdisplay=hex switch tolower(dirext(filename)) case .man set! bufdisplay=man case .tex set! bufdisplay=tex case .htm case .html case .shtml case .dhtml set! bufdisplay=html if buflines >= 2 && bufdisplay=="hex" then try 1,2s/\V^\s*<[HIThit!]/set! bufdisplay=html/x if (filename<<5=="http:" || filename<<4=="ftp:") && strlen(dirext(filename))<4 && bd=="hex" then set! bufdisplay=normal if bufdisplay=="normal" && buflines >= 1 then try 1s/\V^From .*/set! bufdisplay="syntax email"/x if dirdir(filename)=="/tmp" || dirdir(filename)=="/var/tmp" then set! bufdisplay="syntax email" if strlen(dirext(filename))==2 && isnumber(filename>>1) && buflines>=1 then try 1s/\V^\./set! bufdisplay=man/x } if bufdisplay=="html" && readonly then set locked if bufdisplay=="html" then set nosmartargs if readonly && (bufdisplay=="html" || bufdisplay=="man") then try set nospell """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Set the buffer's "initialsyntax" option, based on "prefersyntax" if (bufdisplay=="html" || bufdisplay=="man" || bufdisplay=="tex") then { try { switch prefersyntax case always set isyn case local let isyn = !readonly && dirdir(filename) == "." case writable let isyn = !readonly case never set noisyn } } """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Some messages if tolower(basename(program))!="elvis" && !ro && (bd=="html" || bd=="man" || bd="tex") then message To toggle the display mode, hit ^Wd if partiallastline && readeol!="binary" then warning Partial last line } """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Set mapmode to the bufdisplay, if appropriate switch bufdisplay case html case man case tex let! mapmode=bufdisplay """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Store the file's timestamp let timestamp = time(filename) """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " EXECUTE MODELINES, IF "modeline" OPTION IS SET if modeline && buflines >= 1 && buflines <= modelines * 2 then try %s/\V[ev][xi]:\(.*\):/\1/x if modeline && buflines > modelines * 2 then { eval try 1,(modelines)s/\V[ev][xi]:\\\(.*\\\):/\1/x eval try (buflines - modelines + 1),(buflines)s/\\V[ev][xi]:\\\(.*\\\):/\1/x }