diff --git a/M2/Macaulay2/editors/.gitignore b/M2/Macaulay2/editors/.gitignore index 9464ef20e76..d6c35a4874a 100644 --- a/M2/Macaulay2/editors/.gitignore +++ b/M2/Macaulay2/editors/.gitignore @@ -8,3 +8,5 @@ prism/prism.js prism/prism.js.LICENSE.txt pygments/macaulay2.py rouge/macaulay2.rb +vim/dict/m2.vim.dict +vim/syntax/m2.vim diff --git a/M2/Macaulay2/editors/CMakeLists.txt b/M2/Macaulay2/editors/CMakeLists.txt index bde8941f99a..1d6b00d3ad3 100644 --- a/M2/Macaulay2/editors/CMakeLists.txt +++ b/M2/Macaulay2/editors/CMakeLists.txt @@ -4,9 +4,6 @@ ## - M2-editors generates grammar files ## - M2-emacs generates the M2-mode package for Emacs -# TODO: generate vim grammar -# TODO: generate textmate grammar - set(M2 ${M2_DIST_PREFIX}/${M2_INSTALL_BINDIR}/M2) set(M2_ARGS --script) @@ -17,8 +14,8 @@ set(GRAMMAR_FILES prism/macaulay2.js pygments/macaulay2.py # rouge/macaulay2.rb - vim/m2.vim.syntax - vim/m2.vim.dict + vim/syntax/m2.vim + vim/dict/m2.vim.dict emacs/M2-symbols.el) set(GRAMMAR_TEMPLATES ${GRAMMAR_FILES}) diff --git a/M2/Macaulay2/editors/make-M2-symbols.m2 b/M2/Macaulay2/editors/make-M2-symbols.m2 index 5506980b329..8302259e423 100644 --- a/M2/Macaulay2/editors/make-M2-symbols.m2 +++ b/M2/Macaulay2/editors/make-M2-symbols.m2 @@ -13,9 +13,9 @@ generateGrammar("emacs/M2-symbols.el", x -> demark(" ", format \ x)) -- Prism: Write macaulay2.js generateGrammar("prism/macaulay2.js", x -> demark("|", x)) --- Vim: Write m2.vim.syntax and m2.vim.dict -generateGrammar("vim/m2.vim.syntax", x -> demark(" ", x)) -generateGrammar("vim/m2.vim.dict", x -> demark(" ", x)) -- TODO: is this necessary? +-- Vim: Write syntax/m2.vim and dict/m2.vim.dict +generateGrammar("vim/syntax/m2.vim", x -> demark(" ", x)) +generateGrammar("vim/dict/m2.vim.dict", x -> demark(" ", x)) -- Pygments: Write macaulay2.py generateGrammar("pygments/macaulay2.py", diff --git a/M2/Macaulay2/editors/vim/README.md b/M2/Macaulay2/editors/vim/README.md new file mode 100644 index 00000000000..ac86d231ddc --- /dev/null +++ b/M2/Macaulay2/editors/vim/README.md @@ -0,0 +1,55 @@ +# Vim Plugin for Macaulay2 + +Syntax highlighting and key mappings to send code to a running Macaulay2 session. + +> **Neovim users:** The [macaulay2.nvim](https://github.com/Macaulean/macaulay2.nvim) plugin provides a more complete Neovim integration. + +## Requirements + +- Vim 8.1+ +- `M2` on your `PATH` + +## Installation + +```sh +cp -r dict ftdetect ftplugin syntax ~/.vim/ +``` + +Then, in Macaulay2, generate the symbol files. You may also do this after a +new Macaulay2 release to update the files with any new symbols. + +```m2 +needsPackage "Style" +changeDirectory "~/.vim" +generateGrammar("dict/m2.vim.dict", demark_" ") +generateGrammar("syntax/m2.vim", demark_" ") +``` + +Ensure your `~/.vimrc` contains: + +```vim +filetype plugin on +syntax on +``` + +## Usage + +### Key mappings + +| Key | Mode | Action | +|-----|------|--------| +| `F12` | Normal | Start M2 in a terminal split (or switch to it) | +| `F11` | Normal/Visual | Send current line or visual selection to M2 | +| `F11` | Insert | Send current line to M2 and continue editing | +| `Tab` | Insert | Complete word from dictionary, or insert tab | + +### Commands + +| Command | Action | +|---------|--------| +| `:M2Start` | Open M2 in a terminal split, or switch to it if already running | +| `:M2Restart` | Restart M2 | +| `:M2Exit` | Exit M2 | +| `:M2Send` | Send current line or visual selection to M2 | +| `:M2SendBuffer` | Send the entire buffer to M2 | +| `:M2SendString {str}` | Send a string to M2 | diff --git a/M2/Macaulay2/editors/vim/README_linux b/M2/Macaulay2/editors/vim/README_linux deleted file mode 100644 index 9793bfa95ea..00000000000 --- a/M2/Macaulay2/editors/vim/README_linux +++ /dev/null @@ -1,49 +0,0 @@ -Author: Manoj Kummini - -These are files useful for running M2 inside vim on a GNU/Linux machine. -These use the scripts by David Cook II (earlier available at -http://www.ms.uky.edu/~dcook/files/Macaulay2.vim). - -I. Required programmes - - 1. xterm - 2. screen - 3. vim - -II. Files included - - 0. 0README_linux (this file) - - 1. m2.vimrc (the RC file that sets the file-type, loads the dictionary -file and the syntax file, etc.) - - 2. m2.vim.dict (vim dictionary file, used for completion and -spell-check) - - 3. m2.vim.syntax (instructions on how the various types of words are to -be highlighted) - - 4. m2.vim.plugin (the main file that implements how M2 commands from -the vim window is transferred to M2 running inside a screen session) - - 5. VimM2.scpt (wrapper Apple script around Terminal.app to start the M2 -session inside a screen session) - -III. Usage - - 1. copy m2.vimrc as $HOME/.vim/m2.vimrc, and source it from $HOME/.vimrc, preferably with - - au BufRead, BufNewFile *.m2 so $HOME/.vim/m2.vimrc - - 2. copy m2.vim.dict as $HOME/.vim/dict/m2.vim.dict - - 3. copy m2.vim.syntax as $HOME/.vim/syntax/m2.vim, without the .syntax -at the end. (vim did not recognize the file with the .syntax at the end; -perhaps some option may be set to take care of this issue.) - - 4. copy m2.vim.plugin as $HOME/.vim/plugin/m2.vim and as -$HOME/.vim/ftplugin/m2.vim, without the .plugin at the end. (vim did not -recognize the file with the .plugin at the end; perhaps some option may be -set to take care of this issue. Further, depending on whether the filetype -detection and plugin options are ON, the file inside the ftplugin -directory might not be read.) diff --git a/M2/Macaulay2/editors/vim/README_macos b/M2/Macaulay2/editors/vim/README_macos deleted file mode 100644 index 3824286696b..00000000000 --- a/M2/Macaulay2/editors/vim/README_macos +++ /dev/null @@ -1,59 +0,0 @@ -Author: Manoj Kummini - -These are files useful for running M2 inside vim on a Mac. These use the -scripts by David Cook II (earlier available at -http://www.ms.uky.edu/~dcook/files/Macaulay2.vim). - -Disclaimer: I used these on Mac OS X Snow Leopard, but after switching to -Linux, I have not modified these files for newer versions of OS X. - -I. Required programmes - - 1. Terminal.app (usually comes installed with the OS) - 2. screen - 3. vim - -II. Files included - - 0. 0README_macos (this file) - - 1. m2.vimrc (the RC file that sets the file-type, loads the dictionary -file and the syntax file, etc.) - - 2. m2.vim.dict (vim dictionary file, used for completion and -spell-check) - - 3. m2.vim.syntax (instructions on how the various types of words are to -be highlighted) - - 4. m2.vim.plugin (the main file that implements how M2 commands from -the vim window is transferred to M2 running inside a screen session) - - 5. VimM2.scpt (wrapper Apple script around Terminal.app to start the M2 -session inside a screen session) - -III. Usage - - 1. copy m2.vimrc as $HOME/.vim/m2.vimrc, and source it from $HOME/.vimrc, preferably with - - au BufRead, BufNewFile *.m2 so $HOME/.vim/m2.vimrc - - 2. copy m2.vim.dict as $HOME/.vim/dict/m2.vim.dict - - 3. copy m2.vim.syntax as $HOME/.vim/syntax/m2.vim, without the .syntax -at the end. (vim did not recognize the file with the .syntax at the end; -perhaps some option may be set to take care of this issue.) - - 4. copy m2.vim.plugin as $HOME/.vim/plugin/m2.vim and as -$HOME/.vim/ftplugin/m2.vim, without the .plugin at the end. (vim did not -recognize the file with the .plugin at the end; perhaps some option may be -set to take care of this issue. Further, depending on whether the filetype -detection and plugin options are ON, the file inside the ftplugin -directory might not be read.) - - 5. copy VimM2.scpt as $HOME/local/Applications/VimM2.scpt - -IV. Trouble-shooting - - If the Apple script does not work, open it in the script editor and - save as a script ('File > Save As > Script') diff --git a/M2/Macaulay2/editors/vim/VimM2.scpt b/M2/Macaulay2/editors/vim/VimM2.scpt deleted file mode 100644 index 4e27d1c3e8d..00000000000 --- a/M2/Macaulay2/editors/vim/VimM2.scpt +++ /dev/null @@ -1,14 +0,0 @@ -on run argv - set folderName to item 1 of argv - set scrName to item 2 of argv - - tell application "Terminal" - activate - set cmdToRun to "cd " & quoted form of (folderName as strin - tell application "System Events" - keystroke "n" using {command down} - end tell - do script cmdToRun in first window of application "Terminal - end tell -end run - diff --git a/M2/Macaulay2/editors/vim/dict/m2.vim.dict.in b/M2/Macaulay2/editors/vim/dict/m2.vim.dict.in new file mode 100644 index 00000000000..9fec30e1121 --- /dev/null +++ b/M2/Macaulay2/editors/vim/dict/m2.vim.dict.in @@ -0,0 +1 @@ +@M2SYMBOLS@ diff --git a/M2/Macaulay2/editors/vim/ftdetect/m2.vim b/M2/Macaulay2/editors/vim/ftdetect/m2.vim new file mode 100644 index 00000000000..f62234833f6 --- /dev/null +++ b/M2/Macaulay2/editors/vim/ftdetect/m2.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile *.m2 set filetype=m2 diff --git a/M2/Macaulay2/editors/vim/ftplugin/m2.vim b/M2/Macaulay2/editors/vim/ftplugin/m2.vim new file mode 100644 index 00000000000..ec6a56f7507 --- /dev/null +++ b/M2/Macaulay2/editors/vim/ftplugin/m2.vim @@ -0,0 +1,123 @@ +" Authors: David Cook II +" Manoj Kummini +" License: Public Domain + +" Per-buffer settings +setlocal cpt+=k +setlocal dict+=~/.vim/dict/m2.vim.dict + +" Tab: complete from dictionary when cursor is after a word character, +" otherwise insert a literal tab. +if !exists('*M2_Tab_Or_Complete') + function! M2_Tab_Or_Complete() + if col('.')>1 && strpart(getline('.'), col('.')-2, 3) =~ '^\w' + return "\" + else + return "\" + endif + endfunction +endif +inoremap =M2_Tab_Or_Complete() + +function! M2Warning(msg) + echohl WarningMsg + echo a:msg + echohl Normal +endfunction + +if !executable('M2') + call M2Warning('vim-M2-plugin: M2 not found on PATH') + finish +endif + +let g:m2_terminal_buf = get(g:, 'm2_terminal_buf', -1) + +command! -nargs=0 M2Start :call M2Start() +command! -nargs=0 M2Restart :call M2Restart() +command! -nargs=0 M2Exit :call M2Exit() +command! -nargs=1 M2SendString :call M2SendString() +command! -nargs=0 M2SendBuffer :call M2SendBuffer() +command! -nargs=0 -range M2Send :call M2Send(,) + +nnoremap :M2Start +noremap :M2Sendj0 +inoremap :M2Sendo + +function! M2IsRunning() + if g:m2_terminal_buf == -1 || !bufexists(g:m2_terminal_buf) + return 0 + endif + let job = term_getjob(g:m2_terminal_buf) + return job isnot 0 && job_status(job) ==# 'run' +endfunction + +" Open M2 in a terminal split, or switch to it if already running. +function! M2Start() + if M2IsRunning() + execute 'buffer ' . g:m2_terminal_buf + return + endif + let g:m2_terminal_buf = term_start('M2', {'term_name': 'Macaulay2', 'term_finish': 'open'}) +endfunction + +function! M2Restart() + call M2SendString('restart') +endfunction + +function! M2Exit() + call M2SendString('exit') +endfunction + +function! M2SendString(str) + if !M2IsRunning() + call M2Warning('vim-M2-plugin: M2 is not running. Use :M2Start or .') + return + endif + call term_sendkeys(g:m2_terminal_buf, a:str . "\") +endfunction + +function! M2SendBuffer() + call M2Send('1', '$') +endfunction + +" Send a string, list, or line range to M2. +function! M2Send(...) + if a:0 == 0 + let lines = [getline('.')] + elseif a:0 == 1 + let ta1 = type(a:1) + if ta1 == 1 + let lines = split(a:1, "\n") + elseif ta1 == 3 + let lines = a:1 + else + call M2Warning('vim-M2-plugin: argument must be a string or a list.') + return + endif + elseif a:0 == 2 + if type(a:1) <= 1 && type(a:2) <= 1 + let lines = getline(a:1, a:2) + let mode = visualmode(1) + if mode != '' && line("'<") == a:1 + if mode == 'v' + let start = col("'<") - 1 + let end = col("'>") - 1 + let lines[-1] = lines[-1][: end] + let lines[0] = lines[0][start :] + elseif mode == "\" + let start = min([col("'<"), col("'>")]) - 1 + call map(lines, 'v:val[start :]') + endif + endif + else + call M2Warning('vim-M2-plugin: arguments must be a pair of strings/integers.') + return + endif + else + call M2Warning('vim-M2-plugin: invalid number of arguments.') + return + endif + for lin in lines + call M2SendString(lin) + endfor +endfunction diff --git a/M2/Macaulay2/editors/vim/m2.vim.dict b/M2/Macaulay2/editors/vim/m2.vim.dict deleted file mode 100644 index 074253117e4..00000000000 --- a/M2/Macaulay2/editors/vim/m2.vim.dict +++ /dev/null @@ -1,6 +0,0 @@ -"" Auto-generated for Macaulay2-1.26.05. Do not modify this file manually. - -" Vim dictionary file -" Language: Macaulay2 - -A1BrouwerDegrees AInfinity ANCHOR AbstractSimplicialComplexes AbstractToricVarieties Acknowledgement AdditionalPaths Adjacent AdjointIdeal AdjunctionForSurfaces AffineVariety AfterEval AfterNoPrint AfterPrint AlgebraicSplines Algorithm Alignment AllCodimensions AllMarkovBases AnalyzeSheafOnP1 Analyzer AngleBarList Array Ascending AssociativeAlgebras AssociativeExpression AtomicInt Authors AuxiliaryFiles BGG BIBasis BKZ BLOCKQUOTE BODY BOLD BR BUTTON Bag Bareiss Base BaseFunction BaseRow BasicList BasisElementLimit Bayer BeforePrint BeginningMacaulay2 Benchmark BernsteinSato Bertini BesselJ BesselY Beta BettiCharacters BettiTally Binary BinaryOperation Binomial BinomialEdgeIdeals Binomials Body BoijSoederberg Book3264Examples Boolean BooleanGB Boundary Boxes Brackets Browse Bruns CC CCi CDATA CODE COMMENT CacheExampleOutput CacheTable CallLimit CatalanConstant Caveat CellularResolutions Center Certification ChainComplexExtras ChainComplexOperations ChangeMatrix CharacteristicClasses CheckDocumentation Chordal Citation Classic ClosestFit CodimensionLimit CodingTheory CoefficientRing Cofactor CohenEngine CohenTopLevel CoherentSheaf CohomCalg CoincidentRootLoci Command CompiledFunction CompiledFunctionBody CompiledFunctionClosure Complement CompleteIntersection CompleteIntersectionResolutions Complex ComplexField ComplexMap Complexes Concentration ConductorElement Configuration ConformalBlocks ConnectionMatrices Consequences Constant Constants Contributors ConvexInterface ConwayPolynomials Core CorrespondenceScrolls CotangentSchubert CpMackeyFunctors Cremona Cycle Cyclotomic DD DGAlgebras DIV DL DT Database Date DebuggingMode DecomposableSparseSystems Decompose Default Degree DegreeGroup DegreeLift DegreeLimit DegreeMap DegreeOrder DegreeRank Degrees Dense Density Depth Descending Descent Describe Description DeterminantalRepresentations Dictionary DiffAlg Digamma DirectSum Direction Dispatch Divide DivideConquer DividedPowers Dmodules DocumentTag Down Dynamic EM EXAMPLE EagonResolution EdgeIdeals EigenSolver EisenbudHunekeVasconcelos Eliminate Elimination EliminationMatrices EliminationTemplates EllipticCurves EllipticIntegrals Email End Engine EngineRing EngineTests EnumerationCurves Equation EquivariantGB Error EulerConstant ExampleFiles ExampleItem ExampleSystems Exclude Expression Ext ExteriorExtensions ExteriorIdeals ExteriorModules FGLM Fano FastMinors FastNonminimal File FileName FilePosition FindOne FiniteFittingIdeals First FirstPackage FlatMonoid Flexible FollowLinks ForeignFunctions FormalGroupLaws Format FourTiTwo FourierMotzkin FractionField FreeToExact FrobeniusThresholds Function FunctionApplication FunctionBody FunctionClosure FunctionFieldDesingularization GBDegrees GCstats GF GKMVarieties GLex GRevLex GTZ GaloisField GameTheory Gamma GeneralOrderedMonoid GenerateAssertions Generic GenericInitialIdeal GeometricDecomposability Givens Global GlobalAssignHook GlobalDictionary GlobalHookStore GlobalReleaseHook GlobalSectionLimit Gorenstein GradedLieAlgebras GradedModule GradedModuleMap GraphicalModels GraphicalModelsMLE Graphics Graphs Grassmannian GroebnerBasis GroebnerBasisOptions GroebnerStrata GroebnerWalk GroupLex GroupRevLex HEAD HEADER1 HEADER2 HEADER3 HEADER4 HEADER5 HEADER6 HH HR HREF HTML Hadamard HardDegreeLimit HashTable HeaderType Heading Headline Heft Height Hermite Hermitian HigherCIOperators HighestWeights Hilbert HodgeIntegrals Holder HolonomicSystems Hom HomePage Homogeneous Homogeneous2 Homogenization HomologicalAlgebraPackage HomotopyLieAlgebra HorizontalSpace Hybrid HyperplaneArrangements Hypertext HypertextContainer HypertextParagraph HypertextVoid IFRAME IMG INDENT INPUT ITALIC Ideal IgnoreExampleErrors ImmutableType IncidenceCorrespondenceCohomology Increment IndeterminateNumber Index IndexedVariable IndexedVariableTable InexactField InexactFieldFamily InexactNumber InfiniteNumber InfoDirSection Inhomogeneous Inputs InstallPrefix IntegerProgramming IntegralClosure IntermediateMarkUpType InternalDegree Intersection InvariantRing InverseMethod InverseSystems Inverses Invertible InvolutiveBases Isomorphism Iterate Iterator JSON JSONRPC Jacobian Jets Join K3Carpets K3Surfaces KBD Keep KeepFiles KeepZeroes Key Keyword Keywords Kronecker KustinMiller LABEL LATER LI LINK LITERAL LLL LLLBases LUdecomposition LatticePolytopes Layout Left LengthLimit Lex LexIdeals LieAlgebraRepresentations Limit Linear LinearAlgebra LinearTruncations List LoadDocumentation Local LocalDictionary LocalRings LongPolynomial LowerBound M0nbar M2CODE MCMApproximations MENU META MRDI Macaulay2Doc MacaulayPosets Maintainer MakeDocumentation MakeHTML MakeInfo MakePDF Manipulator MapExpression MapleInterface MarkUpType Markov MatchingFields Matrix MatrixExpression MatrixFactorizations MatrixSchubert Matroids MaxReductionCount MaximalRank MergeTeX MethodFunction MethodFunctionBinary MethodFunctionSingle MethodFunctionWithOptions MinimalGenerators MinimalMatrix MinimalPrimes Minimize MinimumVersion Minus Miura MixedMultiplicity Module ModuleDeformations MonodromySolver Monoid MonoidElement Monomial MonomialAlgebras MonomialIdeal MonomialIntegerPrograms MonomialOrbits MonomialOrder MonomialSize Monomials Msolve MultiGradedRationalMap MultigradedBGG MultigradedBettiTally MultigradedImplicitization MultiplicitySequence MultiplierIdeals MultiplierIdealsDim2 MultiprojectiveVarieties MutableHashTable MutableList MutableMatrix Mutex NAGtypes NCAlgebra NCLex NNParser NTL Name Nauty NautyGraphs Net NetFile NewFromMethod NewMethod NewOfFromMethod NewOfMethod NoPrint NoetherNormalization NoetherianOperators NonPrincipalTestIdeals Nonminimal NonminimalWithGB NormalToricVarieties Normaliz NotANumber Nothing Number NumberedVerticalList NumericSolutions NumericalAlgebraicGeometry NumericalCertification NumericalImplicitization NumericalLinearAlgebra NumericalSchubertCalculus NumericalSemigroups OIGroebnerBases OL OO OldChainComplexes OneExpression OnlineLookup OpenMath Option OptionTable OptionalComponentsPresent Options Order OrderedMonoid Oscillators OutputDictionary Outputs OverField OverZZ PARA PHCpack POSIX PRE Package PackageCitations PackageDictionary PackageExports PackageImports PackageTemplate Padic PairLimit PairsRemaining ParallelF4 ParallelizeByDegree Parametrization Parenthesize Parser Parsing Partition PathSignatures PencilsOfQuadrics Permanents Permutations PhylogeneticTrees PieriMaps PlaneCurveLinearSeries PlaneCurveSingularities Points Polyhedra Polymake PolynomialRing PolyominoIdeals Posets Position PositivityToricBundles Postfix Power Precision Prefix PrimaryDecomposition PrimaryTag PrimitiveElement Print Probability Product ProductOrder Program ProgramRun Proj Projective ProjectiveHilbertPolynomial ProjectiveVariety Prune PruningMap Pseudocode PseudocodeClosure PseudomonomialPrimaryDecomposition Pullback PushForward Python QQ QQParser QRDecomposition QthPower QuadraticIdealExamplesByRoos Quasidegrees QuaternaryQuartics QuillenSuslin Quotient QuotientRing RInterface RR RRi Radical RadicalCodim1 RaiseError RandomCanonicalCurves RandomComplexes RandomCurves RandomCurvesOverVerySmallFiniteFields RandomGenus14Curves RandomIdeals RandomMonomialIdeals RandomObjects RandomPlaneCurves RandomPoints RandomSpaceCurves Range RationalMaps RationalPoints RationalPoints2 ReactionNetworks RealFP RealField RealQP RealQP1 RealRR RealRoots RealXD Reduce ReesAlgebra References ReflexivePolytopesDB Regularity RelativeCanonicalResolution Reload RemakeAllDocumentation RerunExamples ResLengthThree ResidualIntersections Resolution ResolutionsOfStanleyReisnerRings Result Resultants RevLex Reverse Right Ring RingElement RingFamily RingMap RowExpression RunDirectory RunExamples RunExternalM2 SAMP SCMAlgebras SCRIPT SCSCP SLPexpressions SLnEquivariantMatrices SMALL SPACE SPAN SRdeformations STRONG STYLE SUB SUBSECTION SUP SVD SVDComplexes SYNOPSIS SagbiGbDetection Saturation SaturationMap Schubert Schubert2 SchurComplexes SchurFunctors SchurRings SchurVeronese ScriptedFunctor SectionRing SeeAlso SegreClasses SelfInitializingType SemidefiniteProgramming Seminormalization SeparateExec Sequence Serialization Set SheafExpression SheafMap SheafOfRings ShimoyamaYokoyama SimpleDoc SimplicialComplexes SimplicialDecomposability SimplicialModules SimplicialPosets SimplifyFractions SizeLimit SkewCommutative SlackIdeals Sort SortStrategy SourceCode SourceRing SpaceCurves SparseMonomialVectorExpression SparseResultants SparseVectorExpression Spec SpechtModule SpecialFanoFourfolds SpectralSequences Standard StartWithOneMinor StatGraphs StatePolytope StopBeforeComputation StopIteration StopWithMinimalGenerators Strategy Strict String StronglyStableIdeals Style SubalgebraBases Subnodes SubringLimit Subscript Sugarless Sum SumOfTwists SumsOfSquares SuperLinearAlgebra Superscript SwitchingFields Symbol SymbolBody SymbolicPowers SymmetricPolynomials Syzygies SyzygyLimit SyzygyMatrix SyzygyRows TABLE TD TEST TEX TH TITLE TO TO2 TOH TR TSpreadIdeals TT Table Tableaux Tally TangentCone Task TateOnProducts TeXmacs TensorComplexes TensorProduct TerraciniLoci Test TestIdeals TestInput Text ThinSincereQuivers Thing ThreadedGB Threads Threshold Time Topcom Tor TorAlgebra Toric ToricHigherDirectImages ToricInvariants ToricTopology ToricVectorBundles Torsion TorsionFree TotalPairs TriangularSets Triangulations Tries Trim Triplets Tropical TropicalToric Truncate Truncations Type TypicalValue UL URL Undo Unique UnitTest Units Unmixed Up UpdateOnly UpperTriangular Usage UseCachedExampleOutput UseHilbertFunction UseSyzygies UseTarget UserMode VAR VNumber Valuations Variable VariableBaseName Variables Varieties Variety Vasconcelos Vector VectorExpression VectorFields VectorGraphics Verbose Verbosity Verify VersalDeformations Version VerticalList VerticalSpace VirtualResolutions VirtualTally VisibleList Visualize WebApp Weights WeilDivisors WeylAlgebra WeylAlgebras WeylGroups WhitneyStratifications WittVectors Wrap WrapperType XML ZZ ZZParser ZeroExpression about abs accumulate acos acosh acot acoth addCancelTask addDependencyTask addEndFunction addHook addStartTask adjoint agm alarm all allowableThreads ambient analyticSpread ancestor ancestors and andP ann annihilator antipode any append applicationDirectory applicationDirectorySuffix apply applyKeys applyPairs applyTable applyValues apropos arXiv argument ascii asin asinh ass assert associatedGradedRing associatedPrimes atEndOfFile atan atan2 atanh augmentationMap autoload backtrace baseFilename baseName baseRing baseRings basis beginDocumentation benchmark betti between binomial blockMatrixForm borel break breakpoint cache cacheValue cancelTask canonicalBundle canonicalMap canonicalTruncation capture catch ceiling centerString changeBase changeDirectory char charAnalyzer characters check checkDegrees chi cite class clean clearAll clearEcho clearOutput close closeIn closeOut code codim coefficient coefficientRing coefficients cohomology coimage coker cokernel collectGarbage columnAdd columnMult columnPermute columnRankProfile columnSwap columnate combine commandInterpreter commandLine commonRing commonest comodule compactMatrixForm compareExchange complement complete complex component components compose compositions compress concatenate concentration conductor cone conjugate connectingExtMap connectingMap connectingTorMap connectionCount constParser constantStrand content continue contract conwayPolynomial copy copyDirectory copyFile copyright cos cosh cot cotangentSheaf coth cover coverMap coverageSummary cpuTime createTask csc csch current currentColumnNumber currentDirectory currentFileDirectory currentFileName currentLayout currentPackage currentPosition currentRowNumber currentString currentTime cylinder dd deadParser debug debugError debugLevel debuggingMode decompose deepSplice default defaultPrecision degree degreeGroup degreeLength degrees degreesMonoid degreesRing delete demark denominator depth describe det determinant diagonalMatrix diameter dictionary dictionaryPath diff difference dim directProduct directSum disassemble discriminant dismiss distinguished divideByVariable do doc docExample docTemplate document drop dual eagonNorthcott eagonNorthcottComplex echoOff echoOn edit eigenvalues eigenvectors eint elapsedTime elapsedTiming elements eliminate else end endPackage endl engineDebugLevel entries environment epicResolutionMap erase erf erfc error errorDepth euler eulers even examples except exchange exec exit exp expectedReesIdeal expm1 exponents export exportFrom exportMutable expression extend exteriorPower factor false fileDictionaries fileExecutable fileExists fileExitHooks fileLength fileMode fileReadable fileTime fileWritable fillMatrix findFiles findHeft findProgram findSynonyms first firstkey fittingIdeal flagLookup flatten flattenRing flip floor flush fold for forceGB fork format formation fpLLL frac fraction frames freeResolution from fromDividedPowers fromDual functionBody futureParser gb gbRemove gbSnapshot gbTrace gcd gcdCoefficients gcdLLL genera generateAssertions generator generators genericMatrix genericSkewMatrix genericSymmetricMatrix gens genus get getChangeMatrix getGlobalSymbol getIOThreadMode getNetFile getNonUnit getPrimeWithRootOfUnity getSymbol getWWW getc getenv gfanInterface global globalAssign globalAssignFunction globalAssignment globalAssignmentHooks globalReleaseFunction gradedModule gramm graphIdeal graphRing groebnerBasis groupID handleInterrupts hash hashTable headlines heft height help hermite hh hilbertFunction hilbertPolynomial hilbertSeries hold homeDirectory homogenize homology homomorphism homotopyMap hooks horizontalJoin horseshoeResolution html httpHeaders hypertext icFracP icFractions icMap icPIdeal id ideal idealSheaf idealizer identity if ii image imaginaryPart importFrom in incomparable independentSets indeterminate index indexComponents indices inducedMap inducesWellDefinedMap infinity info infoHelp input insert installAssignmentMethod installHilbertFunction installMethod installMinprimes installPackage installedPackages instance instances integralClosure integrate interpreterDepth intersect intersectInP intersection interval inverse inverseErf inversePermutation inverseRegularizedBeta inverseRegularizedGamma inverseSystem irreducibleCharacteristicSeries irreducibleDecomposition isANumber isAffineRing isBorel isCanceled isCommutative isComplexMorphism isConstant isDirectSum isDirectory isEmpty isExact isField isFinite isFinitePrimeField isFree isFreeModule isGlobalSymbol isHomogeneous isIdeal isInfinite isInjective isInputFile isIsomorphic isIsomorphism isLLL isLinearType isListener isLocallyFree isMember isModule isMonomialIdeal isMutable isNormal isNullHomotopic isNullHomotopyOf isOpen isOutputFile isPolynomialRing isPrimary isPrime isPrimitive isProjective isPseudoprime isQuasiIsomorphism isQuotientModule isQuotientOf isQuotientRing isReady isReal isReduction isRegularFile isRing isScalar isShortExactSequence isSkewCommutative isSmooth isSorted isSquareFree isStandardGradedPolynomialRing isSubmodule isSubquotient isSubset isSupportedInZeroLocus isSurjective isTable isUnit isVeryAmple isWellDefined isWeylAlgebra isc isomorphism iterator jacobian jacobianDual join ker kernel kernelLLL kernelOfLocalization keys kill koszul koszulComplex last lastMatch lcm leadCoefficient leadComponent leadMonomial leadTerm left length letterParser lift liftMapAlongQuasiIsomorphism liftable limitFiles limitProcesses lineNumber lines linkFile list listForm listLocalSymbols listSymbols listUserSymbols lngamma load loadDepth loadPackage loadedFiles loadedPackages local localDictionaries localize locate lock log log1p longExactSequence lookup lookupCount lowerLeft lowerRight makeDirectory makeDocumentTag makePackageIndex makeS2 map markedGB match mathML matrix max maxAllowableThreads maxExponent maxPosition member memoize memoizeClear memoizeValues merge mergePairs method methodOptions methods midpoint min minExponent minPosition minPres mingens mingle minimalBetti minimalPresentation minimalPresentationMap minimalPresentationMapInv minimalPrimes minimalReduction minimize minimizeFilename minimizingMap minors minprimes minus mkdir mod module modulo monoid monomialCurveIdeal monomialIdeal monomialSubideal monomials moveFile multidegree multidoc multigraded multiplicity mutable mutableIdentity mutableMatrix naiveTruncation nanosleep needs needsPackage net netList new newClass newCoordinateSystem newNetFile newPackage newRing newline next nextPrime nextkey nil nonspaceAnalyzer norm normalCone not notImplemented notify null nullHomotopy nullParser nullSpace nullaryMethods nullhomotopy numColumns numRows numTBBThreads number numcols numerator numeric numericInterval numgens numrows odd oeis of ofClass on oo ooo oooo openDatabase openDatabaseOut openFiles openIn openInOut openListener openOut openOutAppend operatorAttributes optP optionalSignParser options or orP order override pack package packageTemplate pad pager pairs parallelApply parent parse part partition partitions parts path pdim peek permanents permutations pfaffian pfaffians pi pivots plus poincare poincareN polarize poly polylog position positions power powermod precision prefixDirectory prefixPath preimage prepend presentation pretty primaryComponent primaryDecomposition print printString printWidth printerr printingAccuracy printingLeadLimit printingPrecision printingSeparator printingTimeLimit printingTrailLimit processID product profile profileSummary programPaths projectiveHilbertPolynomial promote protect prune pruneComplex pruneDiff pruneUnit pruningMap pseudoRemainder pseudocode pullback pullbackMaps pushForward pushout pushoutMaps quit quotient quotientRemainder radical radicalContainment random randomComplexMap randomElement randomKRationalPoint randomMutableMatrix randomSubset rank rays read readDirectory readPackage readlink realPart realpath recursionDepth recursionLimit reduceHilbert reducedRowEchelonForm reductionNumber reesAlgebra reesAlgebraIdeal reesIdeal regSeqInIdeal regex regexQuote registerFinalizer regularity regularizedBeta regularizedGamma relations relativizeFilename remainder remove removeDirectory removeFile removeLowestDimension reorganize replace res reshape resolution resolutionMap restart resultant return returnCode reverse right ring ringFromFractions rootPath rootURI roots rotate round rowAdd rowMult rowPermute rowRankProfile rowSwap rsort run runHooks runLengthEncode runProgram same saturate scan scanKeys scanLines scanPairs scanValues schedule schreyerOrder scriptCommandLine searchPath sec sech seeParsing select selectInSubring selectKeys selectPairs selectValues selectVariables separate separateRegexp sequence serialNumber set setEcho setGroupID setIOExclusive setIOSynchronized setIOUnSynchronized setRandomSeed setup setupEmacs setupLift setupPromote sheaf sheafExt sheafHom shield show showClassStructure showHtml showStructure showTex showUserStructure shuffle sign simpleDocFrob sin singularLocus sinh size size2 sleep smithNormalForm solve someTerms sort sortColumns source span specialFiber specialFiberIdeal splice splitWWW sqrt stack stacksProject stacktrace standardForm standardPairs stashValue status stderr stdio step stopIfError store style sub sublists submatrix submatrixByDegrees subquotient subscript subsets substitute substring subtable sum super superscript support switch sylvesterMatrix symbol symbolBody symlinkDirectory symlinkFile symmetricAlgebra symmetricAlgebraIdeal symmetricKernel symmetricPower synonym syz table take tally tan tangentCone tangentSheaf tanh target taskResult temporaryFileName tensor tensorAssociativity tensorCommutativity terminalParser terms testExample testHunekeQuestion tests tex texMath then threadLocal threadVariable throw time times timing to toAbsolutePath toCC toCCi toChainComplex toDividedPowers toDual toExternalString toField toList toLower toMutableComplex toRR toRRi toSequence toString toUpper top topCoefficients topComponents topLevelMode torSymmetry trace transpose trap trim true truncate truncateOutput try tryLock tutorial typicalValues ultimate unbag uncurry undocumented uniform uninstallAllPackages uninstallPackage union unique uniquePermutations unlock unsequence unstack upperLeft upperRight urlEncode use userSymbols utf8 utf8check utf8substring validate value values variety vars vector versalEmbedding version viewHelp wait wedgeProduct weightRange when whichGm while width wikipedia wrap xor yonedaExtension yonedaMap yonedaProduct youngest zero zeta \ No newline at end of file diff --git a/M2/Macaulay2/editors/vim/m2.vim.dict.in b/M2/Macaulay2/editors/vim/m2.vim.dict.in deleted file mode 100644 index b5ffa3bd230..00000000000 --- a/M2/Macaulay2/editors/vim/m2.vim.dict.in +++ /dev/null @@ -1,6 +0,0 @@ -"" @M2BANNER@ - -" Vim dictionary file -" Language: Macaulay2 - -@M2SYMBOLS@ \ No newline at end of file diff --git a/M2/Macaulay2/editors/vim/m2.vim.plugin b/M2/Macaulay2/editors/vim/m2.vim.plugin deleted file mode 100644 index a3c0c966a63..00000000000 --- a/M2/Macaulay2/editors/vim/m2.vim.plugin +++ /dev/null @@ -1,132 +0,0 @@ -" Author: David Cook II -" Version: 0.1 -" License: Public Domain, 2010 -" Description: This plugin was developed to allow easier access to Macaulay 2 from within VIM. -" Caveat: Many constants are hard-coded; to be fixed later. - -" Author: Manoj Kummini -" Description: Modification to run on Apples, with Terminal.app -" Screen Session name -"let b:screens = printf("vim-M2-plugin-%s", localtime()) -let b:screens ="vim-M2-plugin" -" Terminal geometry (WxH+X+Y) -let b:termgeom="80x25+0-0" - -" Add Commands -command -nargs=0 M2Start :call M2Start() -command -nargs=0 M2Restart :call M2Restart() -command -nargs=0 M2Exit :call M2Exit() -command -nargs=1 -complete=shellcmd M2SendString :call M2SendString() -command -nargs=0 M2SendBuffer :call M2SendBuffer() -command -nargs=0 -range M2Send :call M2Send(,) - -" Check for all required executables -if !executable('screen') - call M2Warning("Please install 'screen' to run vim-M2-plugin") - sleep 2 - finish -elseif !executable('M2') - call M2Warning("Please install 'M2' to run vim-M2-plugin") - sleep 2 - finish -endif - -" Output a meaningful warning. -function! M2Warning(msg) - echohl WarningMsg - echo a:msg - echohl Normal -endfunction - -" Load M2 in a new terminal, named with b:screens -function! M2Start() - let cwd = getcwd() - let cmd = printf("/usr/bin/osascript ~/local/Applications/VimM2.scpt %s %s" , cwd, b:screens) - let log = system(cmd) - if v:shell_error - call M2Warning(log) - return - endif -endfunction - -" Restart M2 -function! M2Restart() - call M2SendString('restart') -endfunction - -" Exit M2 -function! M2Exit() - call M2SendString('exit') -endfunction - -" Send a string command to M2 -function! M2SendString(str) - " fix single quotes and then carets - let sstr = substitute(a:str, "'", "'\\\\''", "g") - let sstr = substitute(sstr, '\^', '\\\^', "g") - let sstr = substitute(sstr, '\"', '\\\"', "g") - " send the command: notice \015 is just newline - let cmd = printf("screen -S %s -X eval 'stuff \"%s\015\"'", b:screens, sstr) - let log = system(cmd) - if v:shell_error - call M2Warning(log) - endif -endfunction - -" Send the current buffer to M2 -function! M2SendBuffer() - call M2Send("1", "$") -endfunction - -" Fancy-schmancy general send -" Accepts inputs of either string, list, or line1,line2 -" Modified from screen.vim -function! M2Send(...) - " parse inputs - if a:0 == 0 - let lines = getline(".") - elseif a:0 == 1 - let ta1 = type(a:1) - if ta1 == 1 - " strings: break up on newlines - let lines = split(a:1, "\n") - elseif ta1 == 3 - " lists: take-as-is - let lines = a:1 - else - call M2Warning('vim-M2-plugin: Argument must be a string or a list.') - return - endif - elseif a:0 == 2 - if type(a:1) <= 1 && type(a:2) <= 1 - " integers/strings - let lines = getline(a:1, a:2) - let mode = visualmode(1) - if mode != '' && line("'<") == a:1 - if mode == "v" - let start = col("'<") - 1 - let end = col("'>") - 1 - " slice in end before start in case the selection is only one line - let lines[-1] = lines[-1][: end] - let lines[0] = lines[0][start :] - elseif mode == "\" - let start = col("'<") - if col("'>") < start - let start = col("'>") - endif - let start = start - 1 - call map(lines, 'v:val[start :]') - endif - endif - else - call M2Warning('vim-M2-plugin: Arguments must be a pair of strings/integers.') - return - endif - else - call M2Warning('vim-M2-plugin: Invalid number of arguments.') - endif - " send them on! - for lin in lines - call M2SendString(lin) - endfor -endfunction diff --git a/M2/Macaulay2/editors/vim/m2.vim.syntax b/M2/Macaulay2/editors/vim/m2.vim.syntax deleted file mode 100644 index ae03bf19a57..00000000000 --- a/M2/Macaulay2/editors/vim/m2.vim.syntax +++ /dev/null @@ -1,44 +0,0 @@ -"" Auto-generated for Macaulay2-1.26.05. Do not modify this file manually. - -" Vim syntax file -" Language: Macaulay2 - -if exists("b:current_syntax") - finish -endif - -syn region m2String start=/\/\/\// skip=/\(\/\/\)*\/\/[^\/]/ end=/\/\/\// -syn region m2String start=/"/ skip=/[^\\]\(\\\\\)*\\"/ end=/"/ - -syn match m2Comment /--.*$/ -syn region m2Comment start=/-\*/ end=/\*-/ - -syn case match - -syn keyword m2Boolean true false - -syn keyword m2Keyword contained - \ SPACE TEST and break breakpoint catch continue do elapsedTime elapsedTiming else except for from global if in list local new not of or profile return shield step symbol then threadLocal threadVariable throw time timing to trap try when while xor - -syn keyword m2Datatype contained - \ ANCHOR Adjacent AffineVariety Analyzer AngleBarList Array AssociativeExpression AtomicInt BLOCKQUOTE BODY BOLD BR BUTTON Bag BasicList BettiTally BinaryOperation Boolean CC CCi CDATA CODE COMMENT CacheTable CoherentSheaf Command CompiledFunction CompiledFunctionBody CompiledFunctionClosure Complex ComplexField ComplexMap Constant DD DIV DL DT Database Descent Describe Dictionary DirectSum Divide DocumentTag EM Eliminate EngineRing Equation Error ExampleItem Expression File FilePosition FractionField Function FunctionApplication FunctionBody FunctionClosure GaloisField GeneralOrderedMonoid GlobalDictionary GradedModule GradedModuleMap GroebnerBasis GroebnerBasisOptions HEAD HEADER1 HEADER2 HEADER3 HEADER4 HEADER5 HEADER6 HR HREF HTML HashTable HeaderType Holder Hybrid Hypertext HypertextContainer HypertextParagraph HypertextVoid IFRAME IMG INDENT INPUT ITALIC Ideal ImmutableType IndeterminateNumber IndexedVariable IndexedVariableTable InexactField InexactFieldFamily InexactNumber InfiniteNumber IntermediateMarkUpType Iterator KBD Keyword LABEL LATER LI LINK LITERAL List LocalDictionary LowerBound MENU META Manipulator MapExpression MarkUpType Matrix MatrixExpression MethodFunction MethodFunctionBinary MethodFunctionSingle MethodFunctionWithOptions Minus Module Monoid MonoidElement MonomialIdeal MultigradedBettiTally MutableHashTable MutableList MutableMatrix Mutex Net NetFile Nothing Number NumberedVerticalList OL OneExpression Option OptionTable OrderedMonoid PARA PRE Package Parenthesize Parser Partition PolynomialRing Power Product ProductOrder Program ProgramRun ProjectiveHilbertPolynomial ProjectiveVariety Pseudocode PseudocodeClosure QQ QuotientRing RR RRi RealField Resolution Ring RingElement RingFamily RingMap RowExpression SAMP SCRIPT SMALL SPAN STRONG STYLE SUB SUBSECTION SUP ScriptedFunctor SelfInitializingType Sequence Set SheafExpression SheafMap SheafOfRings SparseMonomialVectorExpression SparseVectorExpression String Subscript Sum SumOfTwists Superscript Symbol SymbolBody TABLE TD TEX TH TITLE TO TO2 TOH TR TT Table Tally Task TensorProduct TestInput Thing Time Type UL URL VAR Variety Vector VectorExpression VerticalList VirtualTally VisibleList WrapperType ZZ ZeroExpression - -syn keyword m2Function container - \ BesselJ BesselY Beta Digamma EXAMPLE End Fano GCstats GF Gamma Grassmannian Hom LLL LUdecomposition M2CODE NNParser Proj QQParser QRDecomposition SVD SYNOPSIS Schubert Spec ZZParser about abs accumulate acos acosh acot acoth addCancelTask addDependencyTask addEndFunction addHook addStartTask adjoint agm alarm all ambient analyticSpread ancestor ancestors andP ann annihilator antipode any append applicationDirectory apply applyKeys applyPairs applyTable applyValues apropos arXiv ascii asin asinh ass assert associatedGradedRing associatedPrimes atEndOfFile atan atan2 atanh augmentationMap autoload baseFilename baseName baseRing basis beginDocumentation benchmark betti between binomial borel cacheValue cancelTask canonicalBundle canonicalMap canonicalTruncation capture ceiling centerString changeBase changeDirectory char charAnalyzer characters check checkDegrees chi class clean clearEcho code codim coefficient coefficientRing coefficients cohomology coimage coker cokernel collectGarbage columnAdd columnMult columnPermute columnRankProfile columnSwap columnate combine commandInterpreter commonRing commonest comodule compareExchange complement complete complex component components compose compositions compress concatenate concentration conductor cone conjugate connectingExtMap connectingMap connectingTorMap connectionCount constParser constantStrand content contract conwayPolynomial copy copyDirectory copyFile cos cosh cot cotangentSheaf coth cover coverMap cpuTime createTask csc csch currentColumnNumber currentDirectory currentPosition currentRowNumber currentTime cylinder deadParser debug debugError decompose deepSplice default degree degreeGroup degreeLength degrees degreesMonoid degreesRing delete demark denominator depth describe det determinant diagonalMatrix diameter dictionary diff difference dim directProduct directSum disassemble discriminant dismiss distinguished divideByVariable doc document drop dual eagonNorthcott eagonNorthcottComplex echoOff echoOn eigenvalues eigenvectors eint elements eliminate endPackage entries epicResolutionMap erase erf erfc error euler eulers even examples exchange exec exp expectedReesIdeal expm1 exponents export exportFrom exportMutable expression extend exteriorPower factor fileExecutable fileExists fileLength fileMode fileReadable fileTime fileWritable fillMatrix findFiles findHeft findProgram findSynonyms first firstkey fittingIdeal flagLookup flatten flattenRing flip floor fold forceGB fork format formation frac fraction frames freeResolution fromDividedPowers fromDual functionBody futureParser gb gbRemove gbSnapshot gcd gcdCoefficients gcdLLL genera generateAssertions generator generators genericMatrix genericSkewMatrix genericSymmetricMatrix gens genus get getChangeMatrix getGlobalSymbol getIOThreadMode getNetFile getNonUnit getPrimeWithRootOfUnity getSymbol getWWW getc getenv globalAssign globalAssignFunction globalAssignment globalReleaseFunction gradedModule gramm graphIdeal graphRing groebnerBasis groupID hash hashTable headlines heft height hermite hilbertFunction hilbertPolynomial hilbertSeries hold homogenize homology homomorphism homotopyMap hooks horizontalJoin horseshoeResolution html httpHeaders hypertext icFracP icFractions icMap icPIdeal ideal idealSheaf idealizer identity image imaginaryPart importFrom independentSets index indices inducedMap inducesWellDefinedMap info input insert installAssignmentMethod installHilbertFunction installMethod installMinprimes installPackage installedPackages instance instances integralClosure integrate intersect intersectInP intersection interval inverse inverseErf inversePermutation inverseRegularizedBeta inverseRegularizedGamma inverseSystem irreducibleCharacteristicSeries irreducibleDecomposition isANumber isAffineRing isBorel isCanceled isCommutative isComplexMorphism isConstant isDirectSum isDirectory isEmpty isExact isField isFinite isFinitePrimeField isFree isFreeModule isGlobalSymbol isHomogeneous isIdeal isInfinite isInjective isInputFile isIsomorphic isIsomorphism isLLL isLinearType isListener isLocallyFree isMember isModule isMonomialIdeal isMutable isNormal isNullHomotopic isNullHomotopyOf isOpen isOutputFile isPolynomialRing isPrimary isPrime isPrimitive isProjective isPseudoprime isQuasiIsomorphism isQuotientModule isQuotientOf isQuotientRing isReady isReal isReduction isRegularFile isRing isScalar isShortExactSequence isSkewCommutative isSmooth isSorted isSquareFree isStandardGradedPolynomialRing isSubmodule isSubquotient isSubset isSupportedInZeroLocus isSurjective isTable isUnit isVeryAmple isWellDefined isWeylAlgebra isc isomorphism iterator jacobian jacobianDual join ker kernel kernelLLL kernelOfLocalization keys kill koszul koszulComplex last lcm leadCoefficient leadComponent leadMonomial leadTerm left length letterParser lift liftMapAlongQuasiIsomorphism liftable limitFiles limitProcesses lines linkFile listForm listSymbols lngamma load loadPackage localDictionaries localize locate lock log log1p longExactSequence lookup lookupCount lowerLeft lowerRight makeDirectory makeDocumentTag makePackageIndex makeS2 map markedGB match mathML matrix max maxPosition member memoize memoizeClear memoizeValues merge mergePairs method methodOptions methods midpoint min minPosition minPres mingens mingle minimalBetti minimalPresentation minimalPrimes minimalReduction minimize minimizeFilename minors minprimes minus mkdir mod module modulo monoid monomialCurveIdeal monomialIdeal monomialSubideal monomials moveFile multidegree multidoc multigraded multiplicity mutable mutableIdentity mutableMatrix naiveTruncation nanosleep needs needsPackage net netList newClass newCoordinateSystem newNetFile newPackage newRing next nextPrime nextkey nonspaceAnalyzer norm normalCone notImplemented nullHomotopy nullParser nullSpace nullhomotopy numColumns numRows number numcols numerator numeric numericInterval numgens numrows odd oeis ofClass on openDatabase openDatabaseOut openFiles openIn openInOut openListener openOut openOutAppend optP optionalSignParser options orP override pack package packageTemplate pad pager pairs parallelApply parent parse part partition partitions parts pdim peek permanents permutations pfaffian pfaffians pivots plus poincare poincareN polarize poly polylog position positions power powermod precision preimage prepend presentation pretty primaryComponent primaryDecomposition print printString printerr processID product projectiveHilbertPolynomial promote protect prune pruneComplex pruneDiff pruneUnit pseudoRemainder pseudocode pullback pushForward pushout quotient quotientRemainder radical radicalContainment random randomComplexMap randomElement randomKRationalPoint randomMutableMatrix randomSubset rank rays read readDirectory readPackage readlink realPart realpath recursionDepth reduceHilbert reducedRowEchelonForm reductionNumber reesAlgebra reesAlgebraIdeal reesIdeal regSeqInIdeal regex regexQuote registerFinalizer regularity regularizedBeta regularizedGamma relations relativizeFilename remainder remove removeDirectory removeFile removeLowestDimension reorganize replace res reshape resolution resolutionMap resultant reverse right ring ringFromFractions roots rotate round rowAdd rowMult rowPermute rowRankProfile rowSwap rsort run runHooks runLengthEncode runProgram same saturate scan scanKeys scanLines scanPairs scanValues schedule schreyerOrder searchPath sec sech seeParsing select selectInSubring selectKeys selectPairs selectValues selectVariables separate separateRegexp sequence serialNumber set setEcho setGroupID setIOExclusive setIOSynchronized setIOUnSynchronized setRandomSeed setup setupEmacs setupLift setupPromote sheaf sheafHom show showHtml showTex shuffle sign simpleDocFrob sin singularLocus sinh size size2 sleep smithNormalForm solve someTerms sort sortColumns source span specialFiber specialFiberIdeal splice splitWWW sqrt stack stacksProject stacktrace standardForm standardPairs stashValue status store style sub sublists submatrix submatrixByDegrees subquotient subsets substitute substring subtable sum super support switch sylvesterMatrix symbolBody symlinkDirectory symlinkFile symmetricAlgebra symmetricAlgebraIdeal symmetricKernel symmetricPower synonym syz table take tally tan tangentCone tangentSheaf tanh target taskResult temporaryFileName tensor tensorAssociativity tensorCommutativity terminalParser terms testHunekeQuestion tests tex texMath times toAbsolutePath toCC toCCi toChainComplex toDividedPowers toDual toExternalString toField toList toLower toMutableComplex toRR toRRi toSequence toString toUpper top topCoefficients topComponents torSymmetry trace transpose trim truncate truncateOutput tryLock tutorial ultimate unbag uncurry undocumented uniform uninstallAllPackages uninstallPackage union unique uniquePermutations unlock unsequence unstack upperLeft upperRight urlEncode use userSymbols utf8 utf8check utf8substring validate value values variety vars vector versalEmbedding wait wedgeProduct weightRange whichGm width wikipedia wrap yonedaExtension yonedaMap yonedaProduct youngest zero zeta - -syn keyword m2Constant container - \ A1BrouwerDegrees AbstractSimplicialComplexes AbstractToricVarieties Acknowledgement AdditionalPaths AdjointIdeal AdjunctionForSurfaces AfterEval AfterNoPrint AfterPrint AInfinity AlgebraicSplines Algorithm Alignment AllCodimensions AllMarkovBases allowableThreads AnalyzeSheafOnP1 applicationDirectorySuffix argument Ascending AssociativeAlgebras Authors AuxiliaryFiles backtrace Bareiss Base BaseFunction baseRings BaseRow BasisElementLimit Bayer BeforePrint BeginningMacaulay2 Benchmark BernsteinSato Bertini BettiCharacters BGG BIBasis Binary Binomial BinomialEdgeIdeals Binomials BKZ blockMatrixForm Body BoijSoederberg Book3264Examples BooleanGB Boundary Boxes Brackets Browse Bruns cache CacheExampleOutput CallLimit CannedExample CatalanConstant Caveat CellularResolutions Center Certification ChainComplexExtras ChainComplexOperations ChangeMatrix CharacteristicClasses CheckDocumentation Chordal Citation cite Classic clearAll clearOutput close closeIn closeOut ClosestFit Code CodimensionLimit CodingTheory CoefficientRing Cofactor CohenEngine CohenTopLevel CohomCalg CoincidentRootLoci commandLine compactMatrixForm Complement CompleteIntersection CompleteIntersectionResolutions Complexes Concentration ConductorElement Configuration ConformalBlocks ConnectionMatrices Consequences Constants Contributors ConvexInterface ConwayPolynomials copyright Core CorrespondenceScrolls CotangentSchubert coverageSummary CpMackeyFunctors Cremona currentFileDirectory currentFileName currentLayout currentPackage Cycle Cyclotomic Date dd DebuggingMode debuggingMode debugLevel DecomposableSparseSystems Decompose Default defaultPrecision Degree DegreeGroup DegreeLift DegreeLimit DegreeMap DegreeOrder DegreeRank Degrees Dense Density Depth Descending Description DeterminantalRepresentations DGAlgebras dictionaryPath DiffAlg Direction Dispatch DivideConquer DividedPowers Dmodules docExample docTemplate Down Dynamic EagonResolution EdgeIdeals edit EigenSolver EisenbudHunekeVasconcelos Elimination EliminationMatrices EliminationTemplates EllipticCurves EllipticIntegrals Email end endl Engine engineDebugLevel EngineTests EnumerationCurves environment EquivariantGB errorDepth EulerConstant Example ExampleFiles ExampleSystems Exclude exit Ext ExteriorExtensions ExteriorIdeals ExteriorModules false FastMinors FastNonminimal FGLM fileDictionaries fileExitHooks FileName FindOne FiniteFittingIdeals First FirstPackage FlatMonoid Flexible flush FollowLinks ForeignFunctions FormalGroupLaws Format FourierMotzkin FourTiTwo fpLLL FreeToExact FrobeniusThresholds FunctionFieldDesingularization GameTheory GBDegrees gbTrace GenerateAssertions Generic GenericInitialIdeal GeometricDecomposability gfanInterface Givens GKMVarieties GLex Global GlobalAssignHook globalAssignmentHooks GlobalHookStore GlobalReleaseHook GlobalSectionLimit Gorenstein GradedLieAlgebras GraphicalModels GraphicalModelsMLE Graphics Graphs GRevLex GroebnerStrata GroebnerWalk GroupLex GroupRevLex GTZ Hadamard handleInterrupts HardDegreeLimit Heading Headline Heft Height help Hermite Hermitian HH hh HigherCIOperators HighestWeights Hilbert HodgeIntegrals HolonomicSystems homeDirectory HomePage Homogeneous Homogeneous2 Homogenization HomologicalAlgebraPackage HomotopyLieAlgebra HorizontalSpace HyperplaneArrangements id IgnoreExampleErrors ii IncidenceCorrespondenceCohomology incomparable Increment indeterminate Index indexComponents infinity InfoDirSection infoHelp Inhomogeneous Inputs InstallPrefix IntegerProgramming IntegralClosure InternalDegree interpreterDepth Intersection InvariantRing InverseMethod Inverses InverseSystems Invertible InvolutiveBases Isomorphism Item Iterate Jacobian Jets Join JSON JSONRPC K3Carpets K3Surfaces Keep KeepFiles KeepZeroes Key Keywords Kronecker KustinMiller lastMatch LatticePolytopes Layout Left LengthLimit Lex LexIdeals LieAlgebraRepresentations Limit Linear LinearAlgebra LinearTruncations lineNumber listLocalSymbols listUserSymbols LLLBases loadDepth LoadDocumentation loadedFiles loadedPackages Local LocalRings LongPolynomial M0nbar Macaulay2Doc MacaulayPosets Maintainer MakeDocumentation MakeHTML MakeInfo MakePDF MapleInterface Markov MatchingFields MatrixFactorizations MatrixSchubert Matroids maxAllowableThreads maxExponent MaximalRank MaxReductionCount MCMApproximations MergeTeX minExponent MinimalGenerators MinimalMatrix minimalPresentationMap minimalPresentationMapInv MinimalPrimes Minimize minimizingMap MinimumVersion Miura MixedMultiplicity ModuleDeformations MonodromySolver Monomial MonomialAlgebras MonomialIntegerPrograms MonomialOrbits MonomialOrder Monomials MonomialSize MRDI Msolve MultigradedBGG MultigradedImplicitization MultiGradedRationalMap MultiplicitySequence MultiplierIdeals MultiplierIdealsDim2 MultiprojectiveVarieties NAGtypes Name Nauty NautyGraphs NCAlgebra NCLex NewFromMethod newline NewMethod NewOfFromMethod NewOfMethod nil Node NoetherianOperators NoetherNormalization Nonminimal NonminimalWithGB NonPrincipalTestIdeals NoPrint Normaliz NormalToricVarieties NotANumber notify NTL null nullaryMethods NumericalAlgebraicGeometry NumericalCertification NumericalImplicitization NumericalLinearAlgebra NumericalSchubertCalculus NumericalSemigroups NumericSolutions numTBBThreads OIGroebnerBases OldChainComplexes OnlineLookup OO oo ooo oooo OpenMath operatorAttributes OptionalComponentsPresent Options Order order Oscillators OutputDictionary Outputs OverField OverZZ PackageCitations PackageDictionary PackageExports PackageImports PackageTemplate Padic PairLimit PairsRemaining ParallelF4 ParallelizeByDegree Parametrization Parsing path PathSignatures PencilsOfQuadrics Permanents Permutations PHCpack PhylogeneticTrees pi PieriMaps PlaneCurveLinearSeries PlaneCurveSingularities Points Polyhedra Polymake PolyominoIdeals Posets Position PositivityToricBundles POSIX Postfix Pre Precision Prefix prefixDirectory prefixPath PrimaryDecomposition PrimaryTag PrimitiveElement Print printingAccuracy printingLeadLimit printingPrecision printingSeparator printingTimeLimit printingTrailLimit printWidth Probability profileSummary programPaths Projective Prune PruningMap pruningMap PseudomonomialPrimaryDecomposition Pullback pullbackMaps PushForward pushoutMaps Python QthPower QuadraticIdealExamplesByRoos Quasidegrees QuaternaryQuartics QuillenSuslin quit Quotient Radical RadicalCodim1 RaiseError RandomCanonicalCurves RandomComplexes RandomCurves RandomCurvesOverVerySmallFiniteFields RandomGenus14Curves RandomIdeals RandomMonomialIdeals RandomObjects RandomPlaneCurves RandomPoints RandomSpaceCurves Range RationalMaps RationalPoints RationalPoints2 ReactionNetworks RealFP RealQP RealQP1 RealRoots RealRR RealXD recursionLimit Reduce ReesAlgebra References ReflexivePolytopesDB Regularity RelativeCanonicalResolution Reload RemakeAllDocumentation RerunExamples ResidualIntersections ResLengthThree ResolutionsOfStanleyReisnerRings restart Result Resultants returnCode Reverse RevLex Right RInterface rootPath rootURI RunDirectory RunExamples RunExternalM2 SagbiGbDetection Saturation SaturationMap Schubert2 SchurComplexes SchurFunctors SchurRings SchurVeronese SCMAlgebras scriptCommandLine SCSCP SectionRing SeeAlso SegreClasses SemidefiniteProgramming Seminormalization SeparateExec Serialization sheafExt ShimoyamaYokoyama showClassStructure showStructure showUserStructure SimpleDoc SimplicialComplexes SimplicialDecomposability SimplicialModules SimplicialPosets SimplifyFractions SizeLimit SkewCommutative SlackIdeals SLnEquivariantMatrices SLPexpressions Sort SortStrategy SourceCode SourceRing SpaceCurves SparseResultants SpechtModule SpecialFanoFourfolds SpectralSequences SRdeformations Standard StartWithOneMinor StatePolytope StatGraphs stderr stdio StopBeforeComputation stopIfError StopIteration StopWithMinimalGenerators Strategy Strict StronglyStableIdeals Style SubalgebraBases Subnodes SubringLimit subscript Sugarless SumsOfSquares SuperLinearAlgebra superscript SVDComplexes SwitchingFields SymbolicPowers SymmetricPolynomials Synopsis Syzygies SyzygyLimit SyzygyMatrix SyzygyRows Tableaux TangentCone TateOnProducts TensorComplexes TerraciniLoci Test testExample TestIdeals TeXmacs Text ThinSincereQuivers ThreadedGB Threads Threshold Topcom topLevelMode Tor TorAlgebra Toric ToricHigherDirectImages ToricInvariants ToricTopology ToricVectorBundles Torsion TorsionFree TotalPairs Tree TriangularSets Triangulations Tries Trim Triplets Tropical TropicalToric true Truncate Truncations TSpreadIdeals TypicalValue typicalValues Undo Unique Units UnitTest Unmixed Up UpdateOnly UpperTriangular Usage UseCachedExampleOutput UseHilbertFunction UserMode UseSyzygies UseTarget Valuations Variable VariableBaseName Variables Varieties Vasconcelos VectorFields VectorGraphics Verbose Verbosity Verify VersalDeformations Version version VerticalSpace viewHelp VirtualResolutions Visualize VNumber WebApp Weights WeilDivisors WeylAlgebra WeylAlgebras WeylGroups WhitneyStratifications WittVectors Wrap XML - -syn keyword m2Symbol contained - \ A1BrouwerDegrees AInfinity ANCHOR AbstractSimplicialComplexes AbstractToricVarieties Acknowledgement AdditionalPaths Adjacent AdjointIdeal AdjunctionForSurfaces AffineVariety AfterEval AfterNoPrint AfterPrint AlgebraicSplines Algorithm Alignment AllCodimensions AllMarkovBases AnalyzeSheafOnP1 Analyzer AngleBarList Array Ascending AssociativeAlgebras AssociativeExpression AtomicInt Authors AuxiliaryFiles BGG BIBasis BKZ BLOCKQUOTE BODY BOLD BR BUTTON Bag Bareiss Base BaseFunction BaseRow BasicList BasisElementLimit Bayer BeforePrint BeginningMacaulay2 Benchmark BernsteinSato Bertini BesselJ BesselY Beta BettiCharacters BettiTally Binary BinaryOperation Binomial BinomialEdgeIdeals Binomials Body BoijSoederberg Book3264Examples Boolean BooleanGB Boundary Boxes Brackets Browse Bruns CC CCi CDATA CODE COMMENT CacheExampleOutput CacheTable CallLimit CatalanConstant Caveat CellularResolutions Center Certification ChainComplexExtras ChainComplexOperations ChangeMatrix CharacteristicClasses CheckDocumentation Chordal Citation Classic ClosestFit CodimensionLimit CodingTheory CoefficientRing Cofactor CohenEngine CohenTopLevel CoherentSheaf CohomCalg CoincidentRootLoci Command CompiledFunction CompiledFunctionBody CompiledFunctionClosure Complement CompleteIntersection CompleteIntersectionResolutions Complex ComplexField ComplexMap Complexes Concentration ConductorElement Configuration ConformalBlocks ConnectionMatrices Consequences Constant Constants Contributors ConvexInterface ConwayPolynomials Core CorrespondenceScrolls CotangentSchubert CpMackeyFunctors Cremona Cycle Cyclotomic DD DGAlgebras DIV DL DT Database Date DebuggingMode DecomposableSparseSystems Decompose Default Degree DegreeGroup DegreeLift DegreeLimit DegreeMap DegreeOrder DegreeRank Degrees Dense Density Depth Descending Descent Describe Description DeterminantalRepresentations Dictionary DiffAlg Digamma DirectSum Direction Dispatch Divide DivideConquer DividedPowers Dmodules DocumentTag Down Dynamic EM EXAMPLE EagonResolution EdgeIdeals EigenSolver EisenbudHunekeVasconcelos Eliminate Elimination EliminationMatrices EliminationTemplates EllipticCurves EllipticIntegrals Email End Engine EngineRing EngineTests EnumerationCurves Equation EquivariantGB Error EulerConstant ExampleFiles ExampleItem ExampleSystems Exclude Expression Ext ExteriorExtensions ExteriorIdeals ExteriorModules FGLM Fano FastMinors FastNonminimal File FileName FilePosition FindOne FiniteFittingIdeals First FirstPackage FlatMonoid Flexible FollowLinks ForeignFunctions FormalGroupLaws Format FourTiTwo FourierMotzkin FractionField FreeToExact FrobeniusThresholds Function FunctionApplication FunctionBody FunctionClosure FunctionFieldDesingularization GBDegrees GCstats GF GKMVarieties GLex GRevLex GTZ GaloisField GameTheory Gamma GeneralOrderedMonoid GenerateAssertions Generic GenericInitialIdeal GeometricDecomposability Givens Global GlobalAssignHook GlobalDictionary GlobalHookStore GlobalReleaseHook GlobalSectionLimit Gorenstein GradedLieAlgebras GradedModule GradedModuleMap GraphicalModels GraphicalModelsMLE Graphics Graphs Grassmannian GroebnerBasis GroebnerBasisOptions GroebnerStrata GroebnerWalk GroupLex GroupRevLex HEAD HEADER1 HEADER2 HEADER3 HEADER4 HEADER5 HEADER6 HH HR HREF HTML Hadamard HardDegreeLimit HashTable HeaderType Heading Headline Heft Height Hermite Hermitian HigherCIOperators HighestWeights Hilbert HodgeIntegrals Holder HolonomicSystems Hom HomePage Homogeneous Homogeneous2 Homogenization HomologicalAlgebraPackage HomotopyLieAlgebra HorizontalSpace Hybrid HyperplaneArrangements Hypertext HypertextContainer HypertextParagraph HypertextVoid IFRAME IMG INDENT INPUT ITALIC Ideal IgnoreExampleErrors ImmutableType IncidenceCorrespondenceCohomology Increment IndeterminateNumber Index IndexedVariable IndexedVariableTable InexactField InexactFieldFamily InexactNumber InfiniteNumber InfoDirSection Inhomogeneous Inputs InstallPrefix IntegerProgramming IntegralClosure IntermediateMarkUpType InternalDegree Intersection InvariantRing InverseMethod InverseSystems Inverses Invertible InvolutiveBases Isomorphism Iterate Iterator JSON JSONRPC Jacobian Jets Join K3Carpets K3Surfaces KBD Keep KeepFiles KeepZeroes Key Keyword Keywords Kronecker KustinMiller LABEL LATER LI LINK LITERAL LLL LLLBases LUdecomposition LatticePolytopes Layout Left LengthLimit Lex LexIdeals LieAlgebraRepresentations Limit Linear LinearAlgebra LinearTruncations List LoadDocumentation Local LocalDictionary LocalRings LongPolynomial LowerBound M0nbar M2CODE MCMApproximations MENU META MRDI Macaulay2Doc MacaulayPosets Maintainer MakeDocumentation MakeHTML MakeInfo MakePDF Manipulator MapExpression MapleInterface MarkUpType Markov MatchingFields Matrix MatrixExpression MatrixFactorizations MatrixSchubert Matroids MaxReductionCount MaximalRank MergeTeX MethodFunction MethodFunctionBinary MethodFunctionSingle MethodFunctionWithOptions MinimalGenerators MinimalMatrix MinimalPrimes Minimize MinimumVersion Minus Miura MixedMultiplicity Module ModuleDeformations MonodromySolver Monoid MonoidElement Monomial MonomialAlgebras MonomialIdeal MonomialIntegerPrograms MonomialOrbits MonomialOrder MonomialSize Monomials Msolve MultiGradedRationalMap MultigradedBGG MultigradedBettiTally MultigradedImplicitization MultiplicitySequence MultiplierIdeals MultiplierIdealsDim2 MultiprojectiveVarieties MutableHashTable MutableList MutableMatrix Mutex NAGtypes NCAlgebra NCLex NNParser NTL Name Nauty NautyGraphs Net NetFile NewFromMethod NewMethod NewOfFromMethod NewOfMethod NoPrint NoetherNormalization NoetherianOperators NonPrincipalTestIdeals Nonminimal NonminimalWithGB NormalToricVarieties Normaliz NotANumber Nothing Number NumberedVerticalList NumericSolutions NumericalAlgebraicGeometry NumericalCertification NumericalImplicitization NumericalLinearAlgebra NumericalSchubertCalculus NumericalSemigroups OIGroebnerBases OL OO OldChainComplexes OneExpression OnlineLookup OpenMath Option OptionTable OptionalComponentsPresent Options Order OrderedMonoid Oscillators OutputDictionary Outputs OverField OverZZ PARA PHCpack POSIX PRE Package PackageCitations PackageDictionary PackageExports PackageImports PackageTemplate Padic PairLimit PairsRemaining ParallelF4 ParallelizeByDegree Parametrization Parenthesize Parser Parsing Partition PathSignatures PencilsOfQuadrics Permanents Permutations PhylogeneticTrees PieriMaps PlaneCurveLinearSeries PlaneCurveSingularities Points Polyhedra Polymake PolynomialRing PolyominoIdeals Posets Position PositivityToricBundles Postfix Power Precision Prefix PrimaryDecomposition PrimaryTag PrimitiveElement Print Probability Product ProductOrder Program ProgramRun Proj Projective ProjectiveHilbertPolynomial ProjectiveVariety Prune PruningMap Pseudocode PseudocodeClosure PseudomonomialPrimaryDecomposition Pullback PushForward Python QQ QQParser QRDecomposition QthPower QuadraticIdealExamplesByRoos Quasidegrees QuaternaryQuartics QuillenSuslin Quotient QuotientRing RInterface RR RRi Radical RadicalCodim1 RaiseError RandomCanonicalCurves RandomComplexes RandomCurves RandomCurvesOverVerySmallFiniteFields RandomGenus14Curves RandomIdeals RandomMonomialIdeals RandomObjects RandomPlaneCurves RandomPoints RandomSpaceCurves Range RationalMaps RationalPoints RationalPoints2 ReactionNetworks RealFP RealField RealQP RealQP1 RealRR RealRoots RealXD Reduce ReesAlgebra References ReflexivePolytopesDB Regularity RelativeCanonicalResolution Reload RemakeAllDocumentation RerunExamples ResLengthThree ResidualIntersections Resolution ResolutionsOfStanleyReisnerRings Result Resultants RevLex Reverse Right Ring RingElement RingFamily RingMap RowExpression RunDirectory RunExamples RunExternalM2 SAMP SCMAlgebras SCRIPT SCSCP SLPexpressions SLnEquivariantMatrices SMALL SPACE SPAN SRdeformations STRONG STYLE SUB SUBSECTION SUP SVD SVDComplexes SYNOPSIS SagbiGbDetection Saturation SaturationMap Schubert Schubert2 SchurComplexes SchurFunctors SchurRings SchurVeronese ScriptedFunctor SectionRing SeeAlso SegreClasses SelfInitializingType SemidefiniteProgramming Seminormalization SeparateExec Sequence Serialization Set SheafExpression SheafMap SheafOfRings ShimoyamaYokoyama SimpleDoc SimplicialComplexes SimplicialDecomposability SimplicialModules SimplicialPosets SimplifyFractions SizeLimit SkewCommutative SlackIdeals Sort SortStrategy SourceCode SourceRing SpaceCurves SparseMonomialVectorExpression SparseResultants SparseVectorExpression Spec SpechtModule SpecialFanoFourfolds SpectralSequences Standard StartWithOneMinor StatGraphs StatePolytope StopBeforeComputation StopIteration StopWithMinimalGenerators Strategy Strict String StronglyStableIdeals Style SubalgebraBases Subnodes SubringLimit Subscript Sugarless Sum SumOfTwists SumsOfSquares SuperLinearAlgebra Superscript SwitchingFields Symbol SymbolBody SymbolicPowers SymmetricPolynomials Syzygies SyzygyLimit SyzygyMatrix SyzygyRows TABLE TD TEST TEX TH TITLE TO TO2 TOH TR TSpreadIdeals TT Table Tableaux Tally TangentCone Task TateOnProducts TeXmacs TensorComplexes TensorProduct TerraciniLoci Test TestIdeals TestInput Text ThinSincereQuivers Thing ThreadedGB Threads Threshold Time Topcom Tor TorAlgebra Toric ToricHigherDirectImages ToricInvariants ToricTopology ToricVectorBundles Torsion TorsionFree TotalPairs TriangularSets Triangulations Tries Trim Triplets Tropical TropicalToric Truncate Truncations Type TypicalValue UL URL Undo Unique UnitTest Units Unmixed Up UpdateOnly UpperTriangular Usage UseCachedExampleOutput UseHilbertFunction UseSyzygies UseTarget UserMode VAR VNumber Valuations Variable VariableBaseName Variables Varieties Variety Vasconcelos Vector VectorExpression VectorFields VectorGraphics Verbose Verbosity Verify VersalDeformations Version VerticalList VerticalSpace VirtualResolutions VirtualTally VisibleList Visualize WebApp Weights WeilDivisors WeylAlgebra WeylAlgebras WeylGroups WhitneyStratifications WittVectors Wrap WrapperType XML ZZ ZZParser ZeroExpression about abs accumulate acos acosh acot acoth addCancelTask addDependencyTask addEndFunction addHook addStartTask adjoint agm alarm all allowableThreads ambient analyticSpread ancestor ancestors and andP ann annihilator antipode any append applicationDirectory applicationDirectorySuffix apply applyKeys applyPairs applyTable applyValues apropos arXiv argument ascii asin asinh ass assert associatedGradedRing associatedPrimes atEndOfFile atan atan2 atanh augmentationMap autoload backtrace baseFilename baseName baseRing baseRings basis beginDocumentation benchmark betti between binomial blockMatrixForm borel break breakpoint cache cacheValue cancelTask canonicalBundle canonicalMap canonicalTruncation capture catch ceiling centerString changeBase changeDirectory char charAnalyzer characters check checkDegrees chi cite class clean clearAll clearEcho clearOutput close closeIn closeOut code codim coefficient coefficientRing coefficients cohomology coimage coker cokernel collectGarbage columnAdd columnMult columnPermute columnRankProfile columnSwap columnate combine commandInterpreter commandLine commonRing commonest comodule compactMatrixForm compareExchange complement complete complex component components compose compositions compress concatenate concentration conductor cone conjugate connectingExtMap connectingMap connectingTorMap connectionCount constParser constantStrand content continue contract conwayPolynomial copy copyDirectory copyFile copyright cos cosh cot cotangentSheaf coth cover coverMap coverageSummary cpuTime createTask csc csch current currentColumnNumber currentDirectory currentFileDirectory currentFileName currentLayout currentPackage currentPosition currentRowNumber currentString currentTime cylinder dd deadParser debug debugError debugLevel debuggingMode decompose deepSplice default defaultPrecision degree degreeGroup degreeLength degrees degreesMonoid degreesRing delete demark denominator depth describe det determinant diagonalMatrix diameter dictionary dictionaryPath diff difference dim directProduct directSum disassemble discriminant dismiss distinguished divideByVariable do doc docExample docTemplate document drop dual eagonNorthcott eagonNorthcottComplex echoOff echoOn edit eigenvalues eigenvectors eint elapsedTime elapsedTiming elements eliminate else end endPackage endl engineDebugLevel entries environment epicResolutionMap erase erf erfc error errorDepth euler eulers even examples except exchange exec exit exp expectedReesIdeal expm1 exponents export exportFrom exportMutable expression extend exteriorPower factor false fileDictionaries fileExecutable fileExists fileExitHooks fileLength fileMode fileReadable fileTime fileWritable fillMatrix findFiles findHeft findProgram findSynonyms first firstkey fittingIdeal flagLookup flatten flattenRing flip floor flush fold for forceGB fork format formation fpLLL frac fraction frames freeResolution from fromDividedPowers fromDual functionBody futureParser gb gbRemove gbSnapshot gbTrace gcd gcdCoefficients gcdLLL genera generateAssertions generator generators genericMatrix genericSkewMatrix genericSymmetricMatrix gens genus get getChangeMatrix getGlobalSymbol getIOThreadMode getNetFile getNonUnit getPrimeWithRootOfUnity getSymbol getWWW getc getenv gfanInterface global globalAssign globalAssignFunction globalAssignment globalAssignmentHooks globalReleaseFunction gradedModule gramm graphIdeal graphRing groebnerBasis groupID handleInterrupts hash hashTable headlines heft height help hermite hh hilbertFunction hilbertPolynomial hilbertSeries hold homeDirectory homogenize homology homomorphism homotopyMap hooks horizontalJoin horseshoeResolution html httpHeaders hypertext icFracP icFractions icMap icPIdeal id ideal idealSheaf idealizer identity if ii image imaginaryPart importFrom in incomparable independentSets indeterminate index indexComponents indices inducedMap inducesWellDefinedMap infinity info infoHelp input insert installAssignmentMethod installHilbertFunction installMethod installMinprimes installPackage installedPackages instance instances integralClosure integrate interpreterDepth intersect intersectInP intersection interval inverse inverseErf inversePermutation inverseRegularizedBeta inverseRegularizedGamma inverseSystem irreducibleCharacteristicSeries irreducibleDecomposition isANumber isAffineRing isBorel isCanceled isCommutative isComplexMorphism isConstant isDirectSum isDirectory isEmpty isExact isField isFinite isFinitePrimeField isFree isFreeModule isGlobalSymbol isHomogeneous isIdeal isInfinite isInjective isInputFile isIsomorphic isIsomorphism isLLL isLinearType isListener isLocallyFree isMember isModule isMonomialIdeal isMutable isNormal isNullHomotopic isNullHomotopyOf isOpen isOutputFile isPolynomialRing isPrimary isPrime isPrimitive isProjective isPseudoprime isQuasiIsomorphism isQuotientModule isQuotientOf isQuotientRing isReady isReal isReduction isRegularFile isRing isScalar isShortExactSequence isSkewCommutative isSmooth isSorted isSquareFree isStandardGradedPolynomialRing isSubmodule isSubquotient isSubset isSupportedInZeroLocus isSurjective isTable isUnit isVeryAmple isWellDefined isWeylAlgebra isc isomorphism iterator jacobian jacobianDual join ker kernel kernelLLL kernelOfLocalization keys kill koszul koszulComplex last lastMatch lcm leadCoefficient leadComponent leadMonomial leadTerm left length letterParser lift liftMapAlongQuasiIsomorphism liftable limitFiles limitProcesses lineNumber lines linkFile list listForm listLocalSymbols listSymbols listUserSymbols lngamma load loadDepth loadPackage loadedFiles loadedPackages local localDictionaries localize locate lock log log1p longExactSequence lookup lookupCount lowerLeft lowerRight makeDirectory makeDocumentTag makePackageIndex makeS2 map markedGB match mathML matrix max maxAllowableThreads maxExponent maxPosition member memoize memoizeClear memoizeValues merge mergePairs method methodOptions methods midpoint min minExponent minPosition minPres mingens mingle minimalBetti minimalPresentation minimalPresentationMap minimalPresentationMapInv minimalPrimes minimalReduction minimize minimizeFilename minimizingMap minors minprimes minus mkdir mod module modulo monoid monomialCurveIdeal monomialIdeal monomialSubideal monomials moveFile multidegree multidoc multigraded multiplicity mutable mutableIdentity mutableMatrix naiveTruncation nanosleep needs needsPackage net netList new newClass newCoordinateSystem newNetFile newPackage newRing newline next nextPrime nextkey nil nonspaceAnalyzer norm normalCone not notImplemented notify null nullHomotopy nullParser nullSpace nullaryMethods nullhomotopy numColumns numRows numTBBThreads number numcols numerator numeric numericInterval numgens numrows odd oeis of ofClass on oo ooo oooo openDatabase openDatabaseOut openFiles openIn openInOut openListener openOut openOutAppend operatorAttributes optP optionalSignParser options or orP order override pack package packageTemplate pad pager pairs parallelApply parent parse part partition partitions parts path pdim peek permanents permutations pfaffian pfaffians pi pivots plus poincare poincareN polarize poly polylog position positions power powermod precision prefixDirectory prefixPath preimage prepend presentation pretty primaryComponent primaryDecomposition print printString printWidth printerr printingAccuracy printingLeadLimit printingPrecision printingSeparator printingTimeLimit printingTrailLimit processID product profile profileSummary programPaths projectiveHilbertPolynomial promote protect prune pruneComplex pruneDiff pruneUnit pruningMap pseudoRemainder pseudocode pullback pullbackMaps pushForward pushout pushoutMaps quit quotient quotientRemainder radical radicalContainment random randomComplexMap randomElement randomKRationalPoint randomMutableMatrix randomSubset rank rays read readDirectory readPackage readlink realPart realpath recursionDepth recursionLimit reduceHilbert reducedRowEchelonForm reductionNumber reesAlgebra reesAlgebraIdeal reesIdeal regSeqInIdeal regex regexQuote registerFinalizer regularity regularizedBeta regularizedGamma relations relativizeFilename remainder remove removeDirectory removeFile removeLowestDimension reorganize replace res reshape resolution resolutionMap restart resultant return returnCode reverse right ring ringFromFractions rootPath rootURI roots rotate round rowAdd rowMult rowPermute rowRankProfile rowSwap rsort run runHooks runLengthEncode runProgram same saturate scan scanKeys scanLines scanPairs scanValues schedule schreyerOrder scriptCommandLine searchPath sec sech seeParsing select selectInSubring selectKeys selectPairs selectValues selectVariables separate separateRegexp sequence serialNumber set setEcho setGroupID setIOExclusive setIOSynchronized setIOUnSynchronized setRandomSeed setup setupEmacs setupLift setupPromote sheaf sheafExt sheafHom shield show showClassStructure showHtml showStructure showTex showUserStructure shuffle sign simpleDocFrob sin singularLocus sinh size size2 sleep smithNormalForm solve someTerms sort sortColumns source span specialFiber specialFiberIdeal splice splitWWW sqrt stack stacksProject stacktrace standardForm standardPairs stashValue status stderr stdio step stopIfError store style sub sublists submatrix submatrixByDegrees subquotient subscript subsets substitute substring subtable sum super superscript support switch sylvesterMatrix symbol symbolBody symlinkDirectory symlinkFile symmetricAlgebra symmetricAlgebraIdeal symmetricKernel symmetricPower synonym syz table take tally tan tangentCone tangentSheaf tanh target taskResult temporaryFileName tensor tensorAssociativity tensorCommutativity terminalParser terms testExample testHunekeQuestion tests tex texMath then threadLocal threadVariable throw time times timing to toAbsolutePath toCC toCCi toChainComplex toDividedPowers toDual toExternalString toField toList toLower toMutableComplex toRR toRRi toSequence toString toUpper top topCoefficients topComponents topLevelMode torSymmetry trace transpose trap trim true truncate truncateOutput try tryLock tutorial typicalValues ultimate unbag uncurry undocumented uniform uninstallAllPackages uninstallPackage union unique uniquePermutations unlock unsequence unstack upperLeft upperRight urlEncode use userSymbols utf8 utf8check utf8substring validate value values variety vars vector versalEmbedding version viewHelp wait wedgeProduct weightRange when whichGm while width wikipedia wrap xor yonedaExtension yonedaMap yonedaProduct youngest zero zeta - -let b:current_syntax = "m2" - -hi def link m2String String -hi def link m2Comment Comment -hi def link m2Boolean Boolean -hi def link m2Symbol Identifier -hi def link m2Keyword Keyword -hi def link m2Datatype Type -hi def link m2Function Function -hi def link m2Constant Constant diff --git a/M2/Macaulay2/editors/vim/m2.vimrc b/M2/Macaulay2/editors/vim/m2.vimrc deleted file mode 100644 index 059f607ab44..00000000000 --- a/M2/Macaulay2/editors/vim/m2.vimrc +++ /dev/null @@ -1,26 +0,0 @@ -setfiletype m2 -runtime! $VIMRUNTIME/syntax/m2.vim -set cpt+=k -set dict+=~/.vim/dict/m2.vim.dict - -" For David Cook's macros. -noremap :M2Start -noremap :M2Sendj0 -inoremap :M2Sendo - -" From Tip 566 Vim Wikia -"Use TAB to complete when typing words, else inserts TABs as usual. -"Uses dictionary and source files to find matching words to complete. -"See help completion for source, -"Note: usual completion is on but more trouble to press all the time. -"Never type the same word twice and maybe learn a new spellings! -"Use the Linux dictionary when spelling is in doubt. -"Window users can copy the file to their machine. -function! Tab_Or_Complete() - if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^\w' - return "\" - else - return "\" - endif -endfunction -inoremap =Tab_Or_Complete() diff --git a/M2/Macaulay2/editors/vim/m2.vim.syntax.in b/M2/Macaulay2/editors/vim/syntax/m2.vim.in similarity index 100% rename from M2/Macaulay2/editors/vim/m2.vim.syntax.in rename to M2/Macaulay2/editors/vim/syntax/m2.vim.in diff --git a/M2/Macaulay2/packages/Style.m2 b/M2/Macaulay2/packages/Style.m2 index f8bd81e469c..5a933f900e3 100644 --- a/M2/Macaulay2/packages/Style.m2 +++ b/M2/Macaulay2/packages/Style.m2 @@ -87,7 +87,7 @@ generateGrammar(String, String, Function) := (template, outfile, demarkf) -> ( " does not exist; skipping generation of ", outfile); return); printerr("generating ", outfile); - directory := replace("/[^/].*$", "", outfile); + directory := replace("/[^/]*$", "", outfile); if not isDirectory directory then makeDirectory directory; output := get template; if #cachedSymbols == 0 then generateSymbols();